'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. });