mirror of https://github.com/lukechilds/node.git
Browse Source
The V8 development branch has unshipped ES6 classes pending resolution of a number of inheritance edge cases. Disable classes in io.js for the sake of feature parity. See https://github.com/iojs/io.js/issues/251 for background and discussion. PR-URL: https://github.com/iojs/io.js/pull/272 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Domenic Denicola <domenic@domenicdenicola.com>v1.8.0-commit
Ben Noordhuis
10 years ago
2 changed files with 27 additions and 0 deletions
@ -0,0 +1,21 @@ |
|||
var common = require('../common'); |
|||
var assert = require('assert'); |
|||
var spawnSync = require('child_process').spawnSync; |
|||
var v8 = require('v8'); |
|||
|
|||
// --harmony_classes implies --harmony_scoping; ensure that scoping still works
|
|||
// when classes are disabled.
|
|||
assert.throws(function() { eval('"use strict"; class C {}'); }, SyntaxError); |
|||
eval('"use strict"; let x = 42'); // Should not throw.
|
|||
eval('"use strict"; const y = 42'); // Should not throw.
|
|||
|
|||
v8.setFlagsFromString('--harmony_classes'); |
|||
eval('"use strict"; class C {}'); // Should not throw.
|
|||
eval('"use strict"; let x = 42'); // Should not throw.
|
|||
eval('"use strict"; const y = 42'); // Should not throw.
|
|||
|
|||
// Verify that the --harmony_classes flag unlocks classes again.
|
|||
var args = ['--harmony_classes', '--use_strict', '-p', 'class C {}']; |
|||
var cp = spawnSync(process.execPath, args); |
|||
assert.equal(cp.status, 0); |
|||
assert.equal(cp.stdout.toString('utf8').trim(), '[Function: C]'); |
Loading…
Reference in new issue