1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const vm_1 = require("vm");
|
4 | const async_1 = require("./async");
|
5 | function executeJavaScript(code, filename, context) {
|
6 | const script = new vm_1.Script(code, { filename: filename });
|
7 | return script.runInContext(context);
|
8 | }
|
9 | exports.executeJavaScript = executeJavaScript;
|
10 | async function executeJavaScriptAsync(code, filename, context) {
|
11 | const preparedCode = code.replace(/^\s*"use strict";/, "");
|
12 |
|
13 | const wrappedCode = async_1.wrapInAsyncFunction(preparedCode);
|
14 | const script = new vm_1.Script(wrappedCode, { filename: filename });
|
15 | const out = await script.runInContext(context);
|
16 | return out;
|
17 | }
|
18 | exports.executeJavaScriptAsync = executeJavaScriptAsync;
|
19 | function isRecoverable(error) {
|
20 | const recoveryCodes = new Set([
|
21 | 1003,
|
22 | 1005,
|
23 | 1109,
|
24 | 1126,
|
25 | 1160,
|
26 | 1161,
|
27 | 2355,
|
28 | ]);
|
29 | return error.diagnosticCodes.every((code) => recoveryCodes.has(code));
|
30 | }
|
31 | exports.isRecoverable = isRecoverable;
|
32 |
|
\ | No newline at end of file |