mirror of
https://github.com/nodejs/node.git
synced 2025-05-09 09:08:46 +00:00

Fixes: https://github.com/nodejs/node/issues/27518 PR-URL: https://github.com/nodejs/node/pull/27523 Reviewed-By: Aleksei Koziatinskii <ak239spb@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
34 lines
862 B
JavaScript
34 lines
862 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
common.skipIfInspectorDisabled();
|
|
|
|
// Test that if there is a side effect in a getter invoked through the vm
|
|
// global proxy, Runtime.evaluate recognizes that.
|
|
|
|
const assert = require('assert');
|
|
const inspector = require('inspector');
|
|
const vm = require('vm');
|
|
|
|
const session = new inspector.Session();
|
|
session.connect();
|
|
|
|
const context = vm.createContext({
|
|
get a() {
|
|
global.foo = '1';
|
|
return 100;
|
|
}
|
|
});
|
|
|
|
session.post('Runtime.evaluate', {
|
|
expression: 'a',
|
|
throwOnSideEffect: true,
|
|
contextId: 2 // context's id
|
|
}, (error, res) => {
|
|
assert.ifError(error);
|
|
const { exception } = res.exceptionDetails;
|
|
assert.strictEqual(exception.className, 'EvalError');
|
|
assert(/Possible side-effect/.test(exception.description));
|
|
|
|
assert(context); // Keep 'context' alive and make linter happy.
|
|
});
|