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 (function TestObjectLiteralPattern() { | 5 (function TestObjectLiteralPattern() { |
6 var { x : x, y : y, get, set } = { x : 1, y : 2, get: 3, set: 4 }; | 6 var { x : x, y : y, get, set } = { x : 1, y : 2, get: 3, set: 4 }; |
7 assertEquals(1, x); | 7 assertEquals(1, x); |
8 assertEquals(2, y); | 8 assertEquals(2, y); |
9 assertEquals(3, get); | 9 assertEquals(3, get); |
10 assertEquals(4, set); | 10 assertEquals(4, set); |
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1075 var g12 = (y, g = () => y) => { var y = 2; return g(); }; | 1075 var g12 = (y, g = () => y) => { var y = 2; return g(); }; |
1076 assertEquals(1, g12(1)); | 1076 assertEquals(1, g12(1)); |
1077 var g13 = ({x}, y, [z], v) => { var x, y, z; return x*y*z*v }; | 1077 var g13 = ({x}, y, [z], v) => { var x, y, z; return x*y*z*v }; |
1078 assertEquals(210, g13({x: 2}, 3, [5], 7)); | 1078 assertEquals(210, g13({x: 2}, 3, [5], 7)); |
1079 | 1079 |
1080 var g20 = ({x}) => { function x() { return 2 }; return x(); } | 1080 var g20 = ({x}) => { function x() { return 2 }; return x(); } |
1081 assertEquals(2, g20({x: 1})); | 1081 assertEquals(2, g20({x: 1})); |
1082 var g21 = ({x}) => { { function x() { return 2 } } return x(); } | 1082 var g21 = ({x}) => { { function x() { return 2 } } return x(); } |
1083 assertThrows(() => g21({x: 1}), TypeError); | 1083 assertThrows(() => g21({x: 1}), TypeError); |
1084 | 1084 |
1085 assertThrows("'use strict'; function f(x) { let x = 0; }", SyntaxError); | 1085 // These errors are not recognized in lazy parsing; see mjsunit/bugs/bug-2728.
js |
1086 assertThrows("'use strict'; function f({x}) { let x = 0; }", SyntaxError); | 1086 assertThrows("'use strict'; (function f(x) { let x = 0; })()", SyntaxError); |
1087 assertThrows("'use strict'; function f(x) { const x = 0; }", SyntaxError); | 1087 assertThrows("'use strict'; (function f({x}) { let x = 0; })()", SyntaxError); |
1088 assertThrows("'use strict'; function f({x}) { const x = 0; }", SyntaxError); | 1088 assertThrows("'use strict'; (function f(x) { const x = 0; })()", SyntaxError); |
| 1089 assertThrows("'use strict'; (function f({x}) { const x = 0; })()", SyntaxError
); |
1089 | 1090 |
1090 assertThrows("'use strict'; let g = (x) => { let x = 0; }", SyntaxError); | 1091 assertThrows("'use strict'; let g = (x) => { let x = 0; }", SyntaxError); |
1091 assertThrows("'use strict'; let g = ({x}) => { let x = 0; }", SyntaxError); | 1092 assertThrows("'use strict'; let g = ({x}) => { let x = 0; }", SyntaxError); |
1092 assertThrows("'use strict'; let g = (x) => { const x = 0; }", SyntaxError); | 1093 assertThrows("'use strict'; let g = (x) => { const x = 0; }", SyntaxError); |
1093 assertThrows("'use strict'; let g = ({x}) => { const x = 0; }", SyntaxError); | 1094 assertThrows("'use strict'; let g = ({x}) => { const x = 0; }", SyntaxError); |
1094 }()); | 1095 }()); |
1095 | 1096 |
1096 | 1097 |
1097 (function TestArgumentsForNonSimpleParameters() { | 1098 (function TestArgumentsForNonSimpleParameters() { |
1098 function f1({}, x) { arguments[1] = 0; return x } | 1099 function f1({}, x) { arguments[1] = 0; return x } |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1182 assertEquals([2, 3], bar); | 1183 assertEquals([2, 3], bar); |
1183 } | 1184 } |
1184 | 1185 |
1185 assertEquals("hello", foo); | 1186 assertEquals("hello", foo); |
1186 assertEquals("world", bar); | 1187 assertEquals("world", bar); |
1187 assertEquals(42, baz); | 1188 assertEquals(42, baz); |
1188 | 1189 |
1189 assertEquals(undefined, eval('try {throw {foo: 1, bar: 2}} catch({foo}) {}')); | 1190 assertEquals(undefined, eval('try {throw {foo: 1, bar: 2}} catch({foo}) {}')); |
1190 assertEquals(undefined, eval('try {throw [1, 2, 3]} catch([x]) {}')); | 1191 assertEquals(undefined, eval('try {throw [1, 2, 3]} catch([x]) {}')); |
1191 })(); | 1192 })(); |
OLD | NEW |