@pulumi/pulumi 3.163.0-alpha.xdc88586 → 3.163.0-alpha.xffc5a7c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/automation/cmd.js +92 -111
- package/automation/cmd.js.map +1 -1
- package/automation/localWorkspace.js +383 -476
- package/automation/localWorkspace.js.map +1 -1
- package/automation/remoteWorkspace.js +38 -55
- package/automation/remoteWorkspace.js.map +1 -1
- package/automation/server.js +6 -16
- package/automation/server.js.map +1 -1
- package/automation/stack.js +537 -608
- package/automation/stack.js.map +1 -1
- package/cmd/dynamic-provider/index.js +204 -235
- package/cmd/dynamic-provider/index.js.map +1 -1
- package/cmd/run/error.js +3 -3
- package/cmd/run/error.js.map +1 -1
- package/cmd/run/run.js +322 -336
- package/cmd/run/run.js.map +1 -1
- package/cmd/run/tracing.js +1 -2
- package/cmd/run/tracing.js.map +1 -1
- package/cmd/run-plugin/run.js +13 -17
- package/cmd/run-plugin/run.js.map +1 -1
- package/cmd/run-policy-pack/run.js +12 -16
- package/cmd/run-policy-pack/run.js.map +1 -1
- package/output.js +61 -78
- package/output.js.map +1 -1
- package/package.json +1 -1
- package/provider/experimental/analyzer.js +43 -46
- package/provider/experimental/analyzer.js.map +1 -1
- package/provider/experimental/provider.js +22 -36
- package/provider/experimental/provider.js.map +1 -1
- package/provider/server.js +359 -397
- package/provider/server.js.map +1 -1
- package/resource.js +29 -41
- package/resource.js.map +1 -1
- package/runtime/asyncIterableUtil.js +6 -17
- package/runtime/asyncIterableUtil.js.map +1 -1
- package/runtime/callbacks.js +254 -269
- package/runtime/callbacks.js.map +1 -1
- package/runtime/closure/codePaths.js +117 -135
- package/runtime/closure/codePaths.js.map +1 -1
- package/runtime/closure/createClosure.js +807 -871
- package/runtime/closure/createClosure.js.map +1 -1
- package/runtime/closure/parseFunction.js +2 -3
- package/runtime/closure/parseFunction.js.map +1 -1
- package/runtime/closure/serializeClosure.js +17 -30
- package/runtime/closure/serializeClosure.js.map +1 -1
- package/runtime/closure/v8.js +166 -190
- package/runtime/closure/v8.js.map +1 -1
- package/runtime/closure/v8Hooks.js +19 -34
- package/runtime/closure/v8Hooks.js.map +1 -1
- package/runtime/dependsOn.js +61 -80
- package/runtime/dependsOn.js.map +1 -1
- package/runtime/invoke.js +155 -170
- package/runtime/invoke.js.map +1 -1
- package/runtime/mocks.js +77 -96
- package/runtime/mocks.js.map +1 -1
- package/runtime/resource.js +238 -252
- package/runtime/resource.js.map +1 -1
- package/runtime/rpc.js +193 -215
- package/runtime/rpc.js.map +1 -1
- package/runtime/settings.js +70 -87
- package/runtime/settings.js.map +1 -1
- package/runtime/stack.js +111 -131
- package/runtime/stack.js.map +1 -1
- package/stackReference.js +39 -58
- package/stackReference.js.map +1 -1
- package/tsutils.js +1 -2
- package/tsutils.js.map +1 -1
- package/utils.js +2 -3
- package/utils.js.map +1 -1
- package/version.js +1 -1
package/runtime/closure/v8.js
CHANGED
|
@@ -12,15 +12,6 @@
|
|
|
12
12
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
15
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
16
|
if (mod && mod.__esModule) return mod;
|
|
26
17
|
var result = {};
|
|
@@ -48,25 +39,23 @@ const v8Hooks = __importStar(require("./v8Hooks"));
|
|
|
48
39
|
*
|
|
49
40
|
* @internal
|
|
50
41
|
*/
|
|
51
|
-
function getFunctionLocationAsync(func) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return { file, line, column };
|
|
69
|
-
});
|
|
42
|
+
async function getFunctionLocationAsync(func) {
|
|
43
|
+
// First, find the runtime's internal id for this function.
|
|
44
|
+
const functionId = await getRuntimeIdForFunctionAsync(func);
|
|
45
|
+
// Now, query for the internal properties the runtime sets up for it.
|
|
46
|
+
const { internalProperties } = await runtimeGetPropertiesAsync(functionId, /*ownProperties:*/ false);
|
|
47
|
+
// There should normally be an internal property called [[FunctionLocation]]:
|
|
48
|
+
// https://chromium.googlesource.com/v8/v8.git/+/3f99afc93c9ba1ba5df19f123b93cc3079893c9b/src/inspector/v8-debugger.cc#793
|
|
49
|
+
const functionLocation = internalProperties.find((p) => p.name === "[[FunctionLocation]]");
|
|
50
|
+
if (!functionLocation || !functionLocation.value || !functionLocation.value.value) {
|
|
51
|
+
return { file: "", line: 0, column: 0 };
|
|
52
|
+
}
|
|
53
|
+
const value = functionLocation.value.value;
|
|
54
|
+
// Map from the scriptId the value has to a file-url.
|
|
55
|
+
const file = v8Hooks.getScriptUrl(value.scriptId) || "";
|
|
56
|
+
const line = value.lineNumber || 0;
|
|
57
|
+
const column = value.columnNumber || 0;
|
|
58
|
+
return { file, line, column };
|
|
70
59
|
}
|
|
71
60
|
exports.getFunctionLocationAsync = getFunctionLocationAsync;
|
|
72
61
|
/**
|
|
@@ -87,47 +76,45 @@ exports.getFunctionLocationAsync = getFunctionLocationAsync;
|
|
|
87
76
|
*
|
|
88
77
|
* @internal
|
|
89
78
|
*/
|
|
90
|
-
function lookupCapturedVariableValueAsync(func, freeVariable, throwOnFailure) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (scope.object) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return val;
|
|
123
|
-
}
|
|
79
|
+
async function lookupCapturedVariableValueAsync(func, freeVariable, throwOnFailure) {
|
|
80
|
+
// First, find the runtime's internal id for this function.
|
|
81
|
+
const functionId = await getRuntimeIdForFunctionAsync(func);
|
|
82
|
+
// Now, query for the internal properties the runtime sets up for it.
|
|
83
|
+
const { internalProperties } = await runtimeGetPropertiesAsync(functionId, /*ownProperties:*/ false);
|
|
84
|
+
// There should normally be an internal property called [[Scopes]]:
|
|
85
|
+
// https://chromium.googlesource.com/v8/v8.git/+/3f99afc93c9ba1ba5df19f123b93cc3079893c9b/src/inspector/v8-debugger.cc#820
|
|
86
|
+
const scopes = internalProperties.find((p) => p.name === "[[Scopes]]");
|
|
87
|
+
if (!scopes) {
|
|
88
|
+
throw new Error("Could not find [[Scopes]] property");
|
|
89
|
+
}
|
|
90
|
+
if (!scopes.value) {
|
|
91
|
+
throw new Error("[[Scopes]] property did not have [value]");
|
|
92
|
+
}
|
|
93
|
+
if (!scopes.value.objectId) {
|
|
94
|
+
throw new Error("[[Scopes]].value have objectId");
|
|
95
|
+
}
|
|
96
|
+
// This is sneaky, but we can actually map back from the [[Scopes]] object to a real in-memory
|
|
97
|
+
// v8 array-like value. Note: this isn't actually a real array. For example, it cannot be
|
|
98
|
+
// iterated. Nor can any actual methods be called on it. However, we can directly index into
|
|
99
|
+
// it, and we can. Similarly, the 'object' type it optionally points at is not a true JS
|
|
100
|
+
// object. So we can't call things like .hasOwnProperty on it. However, the values pointed to
|
|
101
|
+
// by 'object' are the real in-memory JS objects we are looking for. So we can find and return
|
|
102
|
+
// those successfully to our caller.
|
|
103
|
+
const scopesArray = await getValueForObjectId(scopes.value.objectId);
|
|
104
|
+
// scopesArray is ordered from innermost to outermost.
|
|
105
|
+
for (let i = 0, n = scopesArray.length; i < n; i++) {
|
|
106
|
+
const scope = scopesArray[i];
|
|
107
|
+
if (scope.object) {
|
|
108
|
+
if (freeVariable in scope.object) {
|
|
109
|
+
const val = scope.object[freeVariable];
|
|
110
|
+
return val;
|
|
124
111
|
}
|
|
125
112
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
113
|
+
}
|
|
114
|
+
if (throwOnFailure) {
|
|
115
|
+
throw new Error("Unexpected missing variable in closure environment: " + freeVariable);
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
131
118
|
}
|
|
132
119
|
exports.lookupCapturedVariableValueAsync = lookupCapturedVariableValueAsync;
|
|
133
120
|
// Isolated singleton context accessible from the inspector.
|
|
@@ -140,140 +127,129 @@ function inflightContext() {
|
|
|
140
127
|
inflightContextCache = createContext();
|
|
141
128
|
return inflightContextCache;
|
|
142
129
|
}
|
|
143
|
-
function createContext() {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
resolve(event.params.context.id);
|
|
159
|
-
});
|
|
130
|
+
async function createContext() {
|
|
131
|
+
const context = {
|
|
132
|
+
contextId: 0,
|
|
133
|
+
functions: {},
|
|
134
|
+
currentFunctionId: 0,
|
|
135
|
+
calls: {},
|
|
136
|
+
currentCallId: 0,
|
|
137
|
+
};
|
|
138
|
+
const session = await v8Hooks.getSessionAsync();
|
|
139
|
+
const post = util.promisify(session.post);
|
|
140
|
+
// Create own context with known context id and functionsContext as `global`
|
|
141
|
+
await post.call(session, "Runtime.enable");
|
|
142
|
+
const contextIdAsync = new Promise((resolve) => {
|
|
143
|
+
session.once("Runtime.executionContextCreated", (event) => {
|
|
144
|
+
resolve(event.params.context.id);
|
|
160
145
|
});
|
|
161
|
-
vm.createContext(context);
|
|
162
|
-
context.contextId = yield contextIdAsync;
|
|
163
|
-
yield post.call(session, "Runtime.disable");
|
|
164
|
-
return context;
|
|
165
146
|
});
|
|
147
|
+
vm.createContext(context);
|
|
148
|
+
context.contextId = await contextIdAsync;
|
|
149
|
+
await post.call(session, "Runtime.disable");
|
|
150
|
+
return context;
|
|
166
151
|
}
|
|
167
|
-
function getRuntimeIdForFunctionAsync(func) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
retType.exceptionDetails.text);
|
|
193
|
-
}
|
|
194
|
-
const remoteObject = retType.result;
|
|
195
|
-
if (remoteObject.type !== "function") {
|
|
196
|
-
throw new Error("Remote object was not 'function': " + JSON.stringify(remoteObject));
|
|
197
|
-
}
|
|
198
|
-
if (!remoteObject.objectId) {
|
|
199
|
-
throw new Error("Remote function does not have 'objectId': " + JSON.stringify(remoteObject));
|
|
200
|
-
}
|
|
201
|
-
return remoteObject.objectId;
|
|
152
|
+
async function getRuntimeIdForFunctionAsync(func) {
|
|
153
|
+
// In order to get information about an object, we need to put it in a well known location so
|
|
154
|
+
// that we can call Runtime.evaluate and find it. To do this, we use a special map on the
|
|
155
|
+
// 'global' object of a vm context only used for this purpose, and map from a unique-id to that
|
|
156
|
+
// object. We then call Runtime.evaluate with an expression that then points to that unique-id
|
|
157
|
+
// in that global object. The runtime will then find the object and give us back an internal id
|
|
158
|
+
// for it. We can then query for information about the object through that internal id.
|
|
159
|
+
//
|
|
160
|
+
// Note: the reason for the mapping object and the unique-id we create is so that we don't run
|
|
161
|
+
// into any issues when being called asynchronously. We don't want to place the object in a
|
|
162
|
+
// location that might be overwritten by another call while we're asynchronously waiting for our
|
|
163
|
+
// original call to complete.
|
|
164
|
+
const session = await v8Hooks.getSessionAsync();
|
|
165
|
+
const post = util.promisify(session.post);
|
|
166
|
+
// Place the function in a unique location
|
|
167
|
+
const context = await inflightContext();
|
|
168
|
+
const currentFunctionName = "id" + context.currentFunctionId++;
|
|
169
|
+
context.functions[currentFunctionName] = func;
|
|
170
|
+
const contextId = context.contextId;
|
|
171
|
+
const expression = `functions.${currentFunctionName}`;
|
|
172
|
+
try {
|
|
173
|
+
const retType = await post.call(session, "Runtime.evaluate", { contextId, expression });
|
|
174
|
+
if (retType.exceptionDetails) {
|
|
175
|
+
throw new Error(`Error calling "Runtime.evaluate(${expression})" on context ${contextId}: ` +
|
|
176
|
+
retType.exceptionDetails.text);
|
|
202
177
|
}
|
|
203
|
-
|
|
204
|
-
|
|
178
|
+
const remoteObject = retType.result;
|
|
179
|
+
if (remoteObject.type !== "function") {
|
|
180
|
+
throw new Error("Remote object was not 'function': " + JSON.stringify(remoteObject));
|
|
205
181
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
function runtimeGetPropertiesAsync(objectId, ownProperties) {
|
|
209
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
210
|
-
const session = yield v8Hooks.getSessionAsync();
|
|
211
|
-
const post = util.promisify(session.post);
|
|
212
|
-
// This cast will become unnecessary when we move to TS 3.1.6 or above. In that version they
|
|
213
|
-
// support typesafe '.call' calls.
|
|
214
|
-
const retType = (yield post.call(session, "Runtime.getProperties", { objectId, ownProperties }));
|
|
215
|
-
if (retType.exceptionDetails) {
|
|
216
|
-
throw new Error(`Error calling "Runtime.getProperties(${objectId}, ${ownProperties})": ` + retType.exceptionDetails.text);
|
|
182
|
+
if (!remoteObject.objectId) {
|
|
183
|
+
throw new Error("Remote function does not have 'objectId': " + JSON.stringify(remoteObject));
|
|
217
184
|
}
|
|
218
|
-
return
|
|
219
|
-
}
|
|
185
|
+
return remoteObject.objectId;
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
delete context.functions[currentFunctionName];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async function runtimeGetPropertiesAsync(objectId, ownProperties) {
|
|
192
|
+
const session = await v8Hooks.getSessionAsync();
|
|
193
|
+
const post = util.promisify(session.post);
|
|
194
|
+
// This cast will become unnecessary when we move to TS 3.1.6 or above. In that version they
|
|
195
|
+
// support typesafe '.call' calls.
|
|
196
|
+
const retType = (await post.call(session, "Runtime.getProperties", { objectId, ownProperties }));
|
|
197
|
+
if (retType.exceptionDetails) {
|
|
198
|
+
throw new Error(`Error calling "Runtime.getProperties(${objectId}, ${ownProperties})": ` + retType.exceptionDetails.text);
|
|
199
|
+
}
|
|
200
|
+
return { internalProperties: retType.internalProperties || [], properties: retType.result };
|
|
220
201
|
}
|
|
221
|
-
function getValueForObjectId(objectId) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
functionDeclaration: `function () {
|
|
202
|
+
async function getValueForObjectId(objectId) {
|
|
203
|
+
// In order to get the raw JS value for the *remote wrapper* of the [[Scopes]] array, we use
|
|
204
|
+
// Runtime.callFunctionOn on it passing in a fresh function-declaration. The Node runtime will
|
|
205
|
+
// then compile that function, invoking it with the 'real' underlying scopes-array value in
|
|
206
|
+
// memory as the bound 'this' value. Inside that function declaration, we can then access
|
|
207
|
+
// 'this' and assign it to a unique-id in a well known mapping table we have set up. As above,
|
|
208
|
+
// the unique-id is to prevent any issues with multiple in-flight asynchronous calls.
|
|
209
|
+
const session = await v8Hooks.getSessionAsync();
|
|
210
|
+
const post = util.promisify(session.post);
|
|
211
|
+
const context = await inflightContext();
|
|
212
|
+
// Get an id for an unused location in the global table.
|
|
213
|
+
const tableId = "id" + context.currentCallId++;
|
|
214
|
+
// Now, ask the runtime to call a fictitious method on the scopes-array object. When it
|
|
215
|
+
// does, it will get the actual underlying value for the scopes array and bind it to the
|
|
216
|
+
// 'this' value inside the function. Inside the function we then just grab 'this' and
|
|
217
|
+
// stash it in our global table. After this completes, we'll then have access to it.
|
|
218
|
+
// This cast will become unnecessary when we move to TS 3.1.6 or above. In that version they
|
|
219
|
+
// support typesafe '.call' calls.
|
|
220
|
+
const retType = await post.call(session, "Runtime.callFunctionOn", {
|
|
221
|
+
objectId,
|
|
222
|
+
functionDeclaration: `function () {
|
|
243
223
|
calls["${tableId}"] = this;
|
|
244
224
|
}`,
|
|
245
|
-
});
|
|
246
|
-
if (retType.exceptionDetails) {
|
|
247
|
-
throw new Error(`Error calling "Runtime.callFunction(${objectId})": ` + retType.exceptionDetails.text);
|
|
248
|
-
}
|
|
249
|
-
if (!context.calls.hasOwnProperty(tableId)) {
|
|
250
|
-
throw new Error(`Value was not stored into table after calling "Runtime.callFunctionOn(${objectId})"`);
|
|
251
|
-
}
|
|
252
|
-
// Extract value and clear our table entry.
|
|
253
|
-
const val = context.calls[tableId];
|
|
254
|
-
delete context.calls[tableId];
|
|
255
|
-
return val;
|
|
256
225
|
});
|
|
226
|
+
if (retType.exceptionDetails) {
|
|
227
|
+
throw new Error(`Error calling "Runtime.callFunction(${objectId})": ` + retType.exceptionDetails.text);
|
|
228
|
+
}
|
|
229
|
+
if (!context.calls.hasOwnProperty(tableId)) {
|
|
230
|
+
throw new Error(`Value was not stored into table after calling "Runtime.callFunctionOn(${objectId})"`);
|
|
231
|
+
}
|
|
232
|
+
// Extract value and clear our table entry.
|
|
233
|
+
const val = context.calls[tableId];
|
|
234
|
+
delete context.calls[tableId];
|
|
235
|
+
return val;
|
|
257
236
|
}
|
|
258
|
-
function getBoundFunction(func) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
return { targetFunctionText, boundThisValue, boundArgsValues };
|
|
276
|
-
});
|
|
237
|
+
async function getBoundFunction(func) {
|
|
238
|
+
const functionId = await getRuntimeIdForFunctionAsync(func);
|
|
239
|
+
const { internalProperties } = await runtimeGetPropertiesAsync(functionId, /*ownProperties:*/ false);
|
|
240
|
+
const desc = internalProperties.find((p) => p.name === "[[TargetFunction]]");
|
|
241
|
+
const targetFunctionText = desc?.value?.description;
|
|
242
|
+
if (!targetFunctionText) {
|
|
243
|
+
throw new Error("function is not a bound function");
|
|
244
|
+
}
|
|
245
|
+
const boundThisValue = internalProperties.find((p) => p.name === "[[BoundThis]]")?.value?.value;
|
|
246
|
+
const boundArgsObjectId = internalProperties.find((p) => p.name === "[[BoundArgs]]")?.value?.objectId;
|
|
247
|
+
let boundArgsValues = [];
|
|
248
|
+
if (boundArgsObjectId) {
|
|
249
|
+
const { properties } = await runtimeGetPropertiesAsync(boundArgsObjectId, /*ownProperties:*/ false);
|
|
250
|
+
boundArgsValues = properties.filter((p) => p.enumerable).map((p) => p.value?.value);
|
|
251
|
+
}
|
|
252
|
+
return { targetFunctionText, boundThisValue, boundArgsValues };
|
|
277
253
|
}
|
|
278
254
|
exports.getBoundFunction = getBoundFunction;
|
|
279
255
|
//# sourceMappingURL=v8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v8.js","sourceRoot":"","sources":["../../../runtime/closure/v8.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC
|
|
1
|
+
{"version":3,"file":"v8.js","sourceRoot":"","sources":["../../../runtime/closure/v8.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,15 +12,6 @@
|
|
|
12
12
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
// See the License for the specific language governing permissions and
|
|
14
14
|
// limitations under the License.
|
|
15
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
15
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
16
|
if (mod && mod.__esModule) return mod;
|
|
26
17
|
var result = {};
|
|
@@ -44,24 +35,22 @@ function getSession() {
|
|
|
44
35
|
return session;
|
|
45
36
|
}
|
|
46
37
|
const scriptIdToUrlMap = new Map();
|
|
47
|
-
function createInspectorSessionAsync() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
scriptIdToUrlMap.set(scriptId, url);
|
|
62
|
-
});
|
|
63
|
-
return inspectorSession;
|
|
38
|
+
async function createInspectorSessionAsync() {
|
|
39
|
+
// Delay loading 'inspector' as it is not available on early versions of node, so we can't
|
|
40
|
+
// require it on the outside.
|
|
41
|
+
const inspector = await Promise.resolve().then(() => __importStar(require("inspector")));
|
|
42
|
+
const inspectorSession = new inspector.Session();
|
|
43
|
+
inspectorSession.connect();
|
|
44
|
+
// Enable debugging support so we can hear about the Debugger.scriptParsed event. We need that
|
|
45
|
+
// event to know how to map from scriptId's to file-urls.
|
|
46
|
+
await new Promise((resolve, reject) => {
|
|
47
|
+
inspectorSession.post("Debugger.enable", (err, res) => (err ? reject(err) : resolve(res)));
|
|
48
|
+
});
|
|
49
|
+
inspectorSession.addListener("Debugger.scriptParsed", (event) => {
|
|
50
|
+
const { scriptId, url } = event.params;
|
|
51
|
+
scriptIdToUrlMap.set(scriptId, url);
|
|
64
52
|
});
|
|
53
|
+
return inspectorSession;
|
|
65
54
|
}
|
|
66
55
|
/**
|
|
67
56
|
* Returns the inspector session that can be used to query the state of this
|
|
@@ -70,10 +59,8 @@ function createInspectorSessionAsync() {
|
|
|
70
59
|
*
|
|
71
60
|
* @internal
|
|
72
61
|
*/
|
|
73
|
-
function getSessionAsync() {
|
|
74
|
-
return
|
|
75
|
-
return getSession();
|
|
76
|
-
});
|
|
62
|
+
async function getSessionAsync() {
|
|
63
|
+
return getSession();
|
|
77
64
|
}
|
|
78
65
|
exports.getSessionAsync = getSessionAsync;
|
|
79
66
|
/**
|
|
@@ -82,10 +69,8 @@ exports.getSessionAsync = getSessionAsync;
|
|
|
82
69
|
*
|
|
83
70
|
* @internal
|
|
84
71
|
*/
|
|
85
|
-
function isInitializedAsync() {
|
|
86
|
-
|
|
87
|
-
yield getSession();
|
|
88
|
-
});
|
|
72
|
+
async function isInitializedAsync() {
|
|
73
|
+
await getSession();
|
|
89
74
|
}
|
|
90
75
|
exports.isInitializedAsync = isInitializedAsync;
|
|
91
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v8Hooks.js","sourceRoot":"","sources":["../../../runtime/closure/v8Hooks.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC
|
|
1
|
+
{"version":3,"file":"v8Hooks.js","sourceRoot":"","sources":["../../../runtime/closure/v8Hooks.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;;;;;;;AAEjC,kGAAkG;AAClG,gGAAgG;AAChG,gGAAgG;AAChG,uBAAuB;AAEvB,uCAAyB;AACzB,EAAE,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;AAEhD,IAAI,OAAO,GAAiE,SAAS,CAAC;AAEtF,SAAS,UAAU;IACf,IAAI,OAAO,KAAK,SAAS,EAAE;QACvB,OAAO,OAAO,CAAC;KAClB;IACD,OAAO,GAAG,2BAA2B,EAAE,CAAC;IACxC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,KAAK,UAAU,2BAA2B;IACtC,0FAA0F;IAC1F,6BAA6B;IAC7B,MAAM,SAAS,GAAG,wDAAa,WAAW,GAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;IACjD,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAE3B,8FAA8F;IAC9F,yDAAyD;IACzD,MAAM,IAAI,OAAO,CAAgD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjF,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,gBAAgB,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACvC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,eAAe;IACjC,OAAO,UAAU,EAAE,CAAC;AACxB,CAAC;AAFD,0CAEC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB;IACpC,MAAM,UAAU,EAAE,CAAC;AACvB,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAAwC;IACjE,OAAO,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAFD,oCAEC"}
|