text: '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 '%'$/);
  