test: fix scriptParsed event expectations
As per Node.js docs, vm.Script instance is not bound to any context. However, this test was expecting otherwise and depended on implementation details which are going to change. Refs: https://chromium-review.googlesource.com/c/v8/v8/+/1013581 PR-URL: https://github.com/nodejs/node/pull/21079 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yang Guo <yangguo@chromium.org>
This commit is contained in:
parent
021952646c
commit
291344c74f
@ -9,27 +9,17 @@ const script = `
|
||||
'use strict';
|
||||
const assert = require('assert');
|
||||
const vm = require('vm');
|
||||
const { kParsingContext } = process.binding('contextify');
|
||||
global.outer = true;
|
||||
global.inner = false;
|
||||
const context = vm.createContext({
|
||||
outer: false,
|
||||
inner: true
|
||||
});
|
||||
const script = new vm.Script("outer");
|
||||
debugger;
|
||||
|
||||
const scriptMain = new vm.Script("outer");
|
||||
debugger;
|
||||
|
||||
const scriptContext = new vm.Script("inner", {
|
||||
[kParsingContext]: context
|
||||
});
|
||||
debugger;
|
||||
|
||||
assert.strictEqual(scriptMain.runInThisContext(), true);
|
||||
assert.strictEqual(scriptMain.runInContext(context), false);
|
||||
assert.strictEqual(scriptContext.runInThisContext(), false);
|
||||
assert.strictEqual(scriptContext.runInContext(context), true);
|
||||
assert.strictEqual(script.runInThisContext(), true);
|
||||
assert.strictEqual(script.runInContext(context), false);
|
||||
debugger;
|
||||
|
||||
vm.runInContext('inner', context);
|
||||
@ -64,35 +54,25 @@ async function runTests() {
|
||||
await session.waitForBreakOnLine(0, '[eval]');
|
||||
|
||||
await session.send({ 'method': 'Runtime.enable' });
|
||||
const topContext = await getContext(session);
|
||||
await getContext(session);
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
const childContext = await getContext(session);
|
||||
await session.waitForBreakOnLine(13, '[eval]');
|
||||
|
||||
console.error('[test]', 'Script associated with current context by default');
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
await checkScriptContext(session, topContext);
|
||||
await session.waitForBreakOnLine(16, '[eval]');
|
||||
|
||||
console.error('[test]', 'Script associated with selected context');
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
await checkScriptContext(session, childContext);
|
||||
await session.waitForBreakOnLine(21, '[eval]');
|
||||
|
||||
console.error('[test]', 'Script is unbound');
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
await session.waitForBreakOnLine(27, '[eval]');
|
||||
await session.waitForBreakOnLine(17, '[eval]');
|
||||
|
||||
console.error('[test]', 'vm.runInContext associates script with context');
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
await checkScriptContext(session, childContext);
|
||||
await session.waitForBreakOnLine(30, '[eval]');
|
||||
await session.waitForBreakOnLine(20, '[eval]');
|
||||
|
||||
console.error('[test]', 'vm.runInNewContext associates script with context');
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
const thirdContext = await getContext(session);
|
||||
await checkScriptContext(session, thirdContext);
|
||||
await session.waitForBreakOnLine(33, '[eval]');
|
||||
await session.waitForBreakOnLine(23, '[eval]');
|
||||
|
||||
console.error('[test]', 'vm.runInNewContext can contain debugger statements');
|
||||
await session.send({ 'method': 'Debugger.resume' });
|
||||
|
Loading…
x
Reference in New Issue
Block a user