diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2015-03-27 12:04:12 +0100 |
---|---|---|
committer | Chris Dickinson <christopher.s.dickinson@gmail.com> | 2015-04-28 14:38:16 -0700 |
commit | 36cd5fb9d27b830320e57213f5b8829ffbb93324 (patch) | |
tree | bbab4215d26f8597019135206426fccf27a3089e /deps/v8/test/mjsunit/strict-mode.js | |
parent | b57cc51d8d3f4ad279591ae8fa6584ee22773b97 (diff) | |
download | android-node-v8-36cd5fb9d27b830320e57213f5b8829ffbb93324.tar.gz android-node-v8-36cd5fb9d27b830320e57213f5b8829ffbb93324.tar.bz2 android-node-v8-36cd5fb9d27b830320e57213f5b8829ffbb93324.zip |
deps: upgrade v8 to 4.2.77.13
This commit applies some secondary changes in order to make `make test`
pass cleanly:
* disable broken postmortem debugging in common.gypi
* drop obsolete strict mode test in parallel/test-repl
* drop obsolete test parallel/test-v8-features
PR-URL: https://github.com/iojs/io.js/pull/1232
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Diffstat (limited to 'deps/v8/test/mjsunit/strict-mode.js')
-rw-r--r-- | deps/v8/test/mjsunit/strict-mode.js | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/deps/v8/test/mjsunit/strict-mode.js b/deps/v8/test/mjsunit/strict-mode.js index 62d003f9fa..d0839ba0fb 100644 --- a/deps/v8/test/mjsunit/strict-mode.js +++ b/deps/v8/test/mjsunit/strict-mode.js @@ -169,18 +169,6 @@ assertThrows('\ "use strict";\ }', SyntaxError); -// Duplicate data properties. -CheckStrictMode("var x = { dupe : 1, nondupe: 3, dupe : 2 };", SyntaxError); -CheckStrictMode("var x = { '1234' : 1, '2345' : 2, '1234' : 3 };", SyntaxError); -CheckStrictMode("var x = { '1234' : 1, '2345' : 2, 1234 : 3 };", SyntaxError); -CheckStrictMode("var x = { 3.14 : 1, 2.71 : 2, 3.14 : 3 };", SyntaxError); -CheckStrictMode("var x = { 3.14 : 1, '3.14' : 2 };", SyntaxError); -CheckStrictMode("var x = { \ - 123: 1, \ - 123.00000000000000000000000000000000000000000000000000000000000000000001: 2 \ -}", SyntaxError); - -// Non-conflicting data properties. (function StrictModeNonDuplicate() { "use strict"; var x = { 123 : 1, "0123" : 2 }; @@ -191,37 +179,50 @@ CheckStrictMode("var x = { \ }; })(); -// Two getters (non-strict) -assertThrows("var x = { get foo() { }, get foo() { } };", SyntaxError); -assertThrows("var x = { get foo(){}, get 'foo'(){}};", SyntaxError); -assertThrows("var x = { get 12(){}, get '12'(){}};", SyntaxError); - -// Two setters (non-strict) -assertThrows("var x = { set foo(v) { }, set foo(v) { } };", SyntaxError); -assertThrows("var x = { set foo(v) { }, set 'foo'(v) { } };", SyntaxError); -assertThrows("var x = { set 13(v) { }, set '13'(v) { } };", SyntaxError); - -// Setter and data (non-strict) -assertThrows("var x = { foo: 'data', set foo(v) { } };", SyntaxError); -assertThrows("var x = { set foo(v) { }, foo: 'data' };", SyntaxError); -assertThrows("var x = { foo: 'data', set 'foo'(v) { } };", SyntaxError); -assertThrows("var x = { set foo(v) { }, 'foo': 'data' };", SyntaxError); -assertThrows("var x = { 'foo': 'data', set foo(v) { } };", SyntaxError); -assertThrows("var x = { set 'foo'(v) { }, foo: 'data' };", SyntaxError); -assertThrows("var x = { 'foo': 'data', set 'foo'(v) { } };", SyntaxError); -assertThrows("var x = { set 'foo'(v) { }, 'foo': 'data' };", SyntaxError); -assertThrows("var x = { 12: 1, set '12'(v){}};", SyntaxError); -assertThrows("var x = { 12: 1, set 12(v){}};", SyntaxError); -assertThrows("var x = { '12': 1, set '12'(v){}};", SyntaxError); -assertThrows("var x = { '12': 1, set 12(v){}};", SyntaxError); - -// Getter and data (non-strict) -assertThrows("var x = { foo: 'data', get foo() { } };", SyntaxError); -assertThrows("var x = { get foo() { }, foo: 'data' };", SyntaxError); -assertThrows("var x = { 'foo': 'data', get foo() { } };", SyntaxError); -assertThrows("var x = { get 'foo'() { }, 'foo': 'data' };", SyntaxError); -assertThrows("var x = { '12': 1, get '12'(){}};", SyntaxError); -assertThrows("var x = { '12': 1, get 12(){}};", SyntaxError); +// Duplicate data properties are allowed in ES6 +(function StrictModeDuplicateES6() { + 'use strict'; + var x = { + 123: 1, + 123.00000000000000000000000000000000000000000000000000000000000000000001: 2 + }; + var x = { dupe : 1, nondupe: 3, dupe : 2 }; + var x = { '1234' : 1, '2345' : 2, '1234' : 3 }; + var x = { '1234' : 1, '2345' : 2, 1234 : 3 }; + var x = { 3.14 : 1, 2.71 : 2, 3.14 : 3 }; + var x = { 3.14 : 1, '3.14' : 2 }; + + var x = { get foo() { }, get foo() { } }; + var x = { get foo(){}, get 'foo'(){}}; + var x = { get 12(){}, get '12'(){}}; + + // Two setters + var x = { set foo(v) { }, set foo(v) { } }; + var x = { set foo(v) { }, set 'foo'(v) { } }; + var x = { set 13(v) { }, set '13'(v) { } }; + + // Setter and data + var x = { foo: 'data', set foo(v) { } }; + var x = { set foo(v) { }, foo: 'data' }; + var x = { foo: 'data', set 'foo'(v) { } }; + var x = { set foo(v) { }, 'foo': 'data' }; + var x = { 'foo': 'data', set foo(v) { } }; + var x = { set 'foo'(v) { }, foo: 'data' }; + var x = { 'foo': 'data', set 'foo'(v) { } }; + var x = { set 'foo'(v) { }, 'foo': 'data' }; + var x = { 12: 1, set '12'(v){}}; + var x = { 12: 1, set 12(v){}}; + var x = { '12': 1, set '12'(v){}}; + var x = { '12': 1, set 12(v){}}; + + // Getter and data + var x = { foo: 'data', get foo() { } }; + var x = { get foo() { }, foo: 'data' }; + var x = { 'foo': 'data', get foo() { } }; + var x = { get 'foo'() { }, 'foo': 'data' }; + var x = { '12': 1, get '12'(){}}; + var x = { '12': 1, get 12(){}}; +})(); // Assignment to eval or arguments CheckStrictMode("function strict() { eval = undefined; }", SyntaxError); @@ -291,7 +292,7 @@ CheckStrictMode("const x = 0;", SyntaxError); CheckStrictMode("for (const x = 0; false;) {}", SyntaxError); CheckStrictMode("function strict() { const x = 0; }", SyntaxError); -// Strict mode only allows functions in SourceElements +// Strict mode only allows functions in StatementList CheckStrictMode("if (true) { function invalid() {} }", SyntaxError); CheckStrictMode("for (;false;) { function invalid() {} }", SyntaxError); CheckStrictMode("{ function invalid() {} }", SyntaxError); |