node/test/parallel/test-v8-flags.js
Michaël Zasso d0ab29094e
test: adapt test-v8-flags to V8 9.3
%_IsSmi was removed. %IsSmi can be used instead.

Refs: 863a2d6c24

PR-URL: https://github.com/nodejs/node/pull/39469
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2021-08-30 21:03:26 +02:00

19 lines
747 B
JavaScript

'use strict';
require('../common');
const assert = require('assert');
const v8 = require('v8');
const vm = require('vm');
// Note: changing V8 flags after an isolate started is not guaranteed to work.
// Specifically here, V8 may cache compiled scripts between the flip of the
// flag. We use a different script each time to work around this problem.
v8.setFlagsFromString('--allow_natives_syntax');
assert(eval('%IsSmi(42)'));
assert(vm.runInThisContext('%IsSmi(43)'));
v8.setFlagsFromString('--noallow_natives_syntax');
assert.throws(function() { eval('%IsSmi(44)'); },
/^SyntaxError: Unexpected token '%'$/);
assert.throws(function() { vm.runInThisContext('%IsSmi(45)'); },
/^SyntaxError: Unexpected token '%'$/);