OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Flags: --harmony-destructuring-bind | 5 // Flags: --harmony-destructuring-bind |
6 // Flags: --harmony-default-parameters | 6 // Flags: --harmony-default-parameters |
7 | 7 |
8 (function TestObjectLiteralPattern() { | 8 (function TestObjectLiteralPattern() { |
9 var { x : x, y : y, get, set } = { x : 1, y : 2, get: 3, set: 4 }; | 9 var { x : x, y : y, get, set } = { x : 1, y : 2, get: 3, set: 4 }; |
10 assertEquals(1, x); | 10 assertEquals(1, x); |
(...skipping 973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 assertEquals(2, f10({x: 6}, 2)); | 984 assertEquals(2, f10({x: 6}, 2)); |
985 function f11({x}, y) { var z = y; var y = 2; return z; } | 985 function f11({x}, y) { var z = y; var y = 2; return z; } |
986 assertEquals(1, f11({x: 6}, 1)); | 986 assertEquals(1, f11({x: 6}, 1)); |
987 function f12(y, g = () => y) { var y = 2; return g(); } | 987 function f12(y, g = () => y) { var y = 2; return g(); } |
988 assertEquals(1, f12(1)); | 988 assertEquals(1, f12(1)); |
989 function f13({x}, y, [z], v) { var x, y, z; return x*y*z*v } | 989 function f13({x}, y, [z], v) { var x, y, z; return x*y*z*v } |
990 assertEquals(210, f13({x: 2}, 3, [5], 7)); | 990 assertEquals(210, f13({x: 2}, 3, [5], 7)); |
991 | 991 |
992 function f20({x}) { function x() { return 2 }; return x(); } | 992 function f20({x}) { function x() { return 2 }; return x(); } |
993 assertEquals(2, f20({x: 1})); | 993 assertEquals(2, f20({x: 1})); |
994 // Function hoisting is blocked by the conflicting x declaration | |
995 function f21({x}) { { function x() { return 2 } } return x(); } | 994 function f21({x}) { { function x() { return 2 } } return x(); } |
996 assertThrows(() => f21({x: 1}), TypeError); | 995 assertEquals(2, f21({x: 1})); |
997 | 996 |
998 var g1 = ({x}) => { var x = 2; return x }; | 997 var g1 = ({x}) => { var x = 2; return x }; |
999 assertEquals(2, g1({x: 1})); | 998 assertEquals(2, g1({x: 1})); |
1000 var g2 = ({x}) => { { var x = 2; } return x; }; | 999 var g2 = ({x}) => { { var x = 2; } return x; }; |
1001 assertEquals(2, g2({x: 1})); | 1000 assertEquals(2, g2({x: 1})); |
1002 var g3 = ({x}) => { var y = x; var x = 2; return y; }; | 1001 var g3 = ({x}) => { var y = x; var x = 2; return y; }; |
1003 assertEquals(1, g3({x: 1})); | 1002 assertEquals(1, g3({x: 1})); |
1004 var g4 = ({x}) => { { var y = x; var x = 2; } return y; }; | 1003 var g4 = ({x}) => { { var y = x; var x = 2; } return y; }; |
1005 assertEquals(1, g4({x: 1})); | 1004 assertEquals(1, g4({x: 1})); |
1006 var g5 = ({x}, g = () => x) => { var x = 2; return g(); }; | 1005 var g5 = ({x}, g = () => x) => { var x = 2; return g(); }; |
(...skipping 12 matching lines...) Expand all Loading... |
1019 var g11 = ({x}, y) => { var z = y; var y = 2; return z; }; | 1018 var g11 = ({x}, y) => { var z = y; var y = 2; return z; }; |
1020 assertEquals(1, g11({x: 6}, 1)); | 1019 assertEquals(1, g11({x: 6}, 1)); |
1021 var g12 = (y, g = () => y) => { var y = 2; return g(); }; | 1020 var g12 = (y, g = () => y) => { var y = 2; return g(); }; |
1022 assertEquals(1, g12(1)); | 1021 assertEquals(1, g12(1)); |
1023 var g13 = ({x}, y, [z], v) => { var x, y, z; return x*y*z*v }; | 1022 var g13 = ({x}, y, [z], v) => { var x, y, z; return x*y*z*v }; |
1024 assertEquals(210, g13({x: 2}, 3, [5], 7)); | 1023 assertEquals(210, g13({x: 2}, 3, [5], 7)); |
1025 | 1024 |
1026 var g20 = ({x}) => { function x() { return 2 }; return x(); } | 1025 var g20 = ({x}) => { function x() { return 2 }; return x(); } |
1027 assertEquals(2, g20({x: 1})); | 1026 assertEquals(2, g20({x: 1})); |
1028 var g21 = ({x}) => { { function x() { return 2 } } return x(); } | 1027 var g21 = ({x}) => { { function x() { return 2 } } return x(); } |
1029 assertThrows(() => g21({x: 1}), TypeError); | 1028 assertEquals(2, g21({x: 1})); |
1030 | 1029 |
1031 assertThrows("'use strict'; function f(x) { let x = 0; }; f({});", SyntaxError
); | 1030 assertThrows("'use strict'; function f(x) { let x = 0; }; f({});", SyntaxError
); |
1032 assertThrows("'use strict'; function f({x}) { let x = 0; }; f({});", SyntaxErr
or); | 1031 assertThrows("'use strict'; function f({x}) { let x = 0; }; f({});", SyntaxErr
or); |
1033 assertThrows("'use strict'; function f(x) { const x = 0; }; f({});", SyntaxErr
or); | 1032 assertThrows("'use strict'; function f(x) { const x = 0; }; f({});", SyntaxErr
or); |
1034 assertThrows("'use strict'; function f({x}) { const x = 0; }; f({});", SyntaxE
rror); | 1033 assertThrows("'use strict'; function f({x}) { const x = 0; }; f({});", SyntaxE
rror); |
1035 | 1034 |
1036 assertThrows("'use strict'; let g = (x) => { let x = 0; }; f({});", SyntaxErro
r); | 1035 assertThrows("'use strict'; let g = (x) => { let x = 0; }; f({});", SyntaxErro
r); |
1037 assertThrows("'use strict'; let g = ({x}) => { let x = 0; }; f({});", SyntaxEr
ror); | 1036 assertThrows("'use strict'; let g = ({x}) => { let x = 0; }; f({});", SyntaxEr
ror); |
1038 assertThrows("'use strict'; let g = (x) => { const x = 0; }; f({});", SyntaxEr
ror); | 1037 assertThrows("'use strict'; let g = (x) => { const x = 0; }; f({});", SyntaxEr
ror); |
1039 assertThrows("'use strict'; let g = ({x}) => { const x = 0; }; f({});", Syntax
Error); | 1038 assertThrows("'use strict'; let g = ({x}) => { const x = 0; }; f({});", Syntax
Error); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1125 throw [1, 2, 3]; | 1124 throw [1, 2, 3]; |
1126 } catch ([foo, ...bar]) { | 1125 } catch ([foo, ...bar]) { |
1127 assertEquals(1, foo); | 1126 assertEquals(1, foo); |
1128 assertEquals([2, 3], bar); | 1127 assertEquals([2, 3], bar); |
1129 } | 1128 } |
1130 | 1129 |
1131 assertEquals("hello", foo); | 1130 assertEquals("hello", foo); |
1132 assertEquals("world", bar); | 1131 assertEquals("world", bar); |
1133 assertEquals(42, baz); | 1132 assertEquals(42, baz); |
1134 })(); | 1133 })(); |
OLD | NEW |