Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: test/mjsunit/harmony/destructuring.js

Issue 1571793002: Reland of Ship ES2015 sloppy-mode function hoisting, let, class (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
994 function f21({x}) { { function x() { return 2 } } return x(); } 995 function f21({x}) { { function x() { return 2 } } return x(); }
995 assertEquals(2, f21({x: 1})); 996 assertThrows(() => f21({x: 1}), TypeError);
996 997
997 var g1 = ({x}) => { var x = 2; return x }; 998 var g1 = ({x}) => { var x = 2; return x };
998 assertEquals(2, g1({x: 1})); 999 assertEquals(2, g1({x: 1}));
999 var g2 = ({x}) => { { var x = 2; } return x; }; 1000 var g2 = ({x}) => { { var x = 2; } return x; };
1000 assertEquals(2, g2({x: 1})); 1001 assertEquals(2, g2({x: 1}));
1001 var g3 = ({x}) => { var y = x; var x = 2; return y; }; 1002 var g3 = ({x}) => { var y = x; var x = 2; return y; };
1002 assertEquals(1, g3({x: 1})); 1003 assertEquals(1, g3({x: 1}));
1003 var g4 = ({x}) => { { var y = x; var x = 2; } return y; }; 1004 var g4 = ({x}) => { { var y = x; var x = 2; } return y; };
1004 assertEquals(1, g4({x: 1})); 1005 assertEquals(1, g4({x: 1}));
1005 var g5 = ({x}, g = () => x) => { var x = 2; return g(); }; 1006 var g5 = ({x}, g = () => x) => { var x = 2; return g(); };
(...skipping 12 matching lines...) Expand all
1018 var g11 = ({x}, y) => { var z = y; var y = 2; return z; }; 1019 var g11 = ({x}, y) => { var z = y; var y = 2; return z; };
1019 assertEquals(1, g11({x: 6}, 1)); 1020 assertEquals(1, g11({x: 6}, 1));
1020 var g12 = (y, g = () => y) => { var y = 2; return g(); }; 1021 var g12 = (y, g = () => y) => { var y = 2; return g(); };
1021 assertEquals(1, g12(1)); 1022 assertEquals(1, g12(1));
1022 var g13 = ({x}, y, [z], v) => { var x, y, z; return x*y*z*v }; 1023 var g13 = ({x}, y, [z], v) => { var x, y, z; return x*y*z*v };
1023 assertEquals(210, g13({x: 2}, 3, [5], 7)); 1024 assertEquals(210, g13({x: 2}, 3, [5], 7));
1024 1025
1025 var g20 = ({x}) => { function x() { return 2 }; return x(); } 1026 var g20 = ({x}) => { function x() { return 2 }; return x(); }
1026 assertEquals(2, g20({x: 1})); 1027 assertEquals(2, g20({x: 1}));
1027 var g21 = ({x}) => { { function x() { return 2 } } return x(); } 1028 var g21 = ({x}) => { { function x() { return 2 } } return x(); }
1028 assertEquals(2, g21({x: 1})); 1029 assertThrows(() => g21({x: 1}), TypeError);
1029 1030
1030 assertThrows("'use strict'; function f(x) { let x = 0; }; f({});", SyntaxError ); 1031 assertThrows("'use strict'; function f(x) { let x = 0; }; f({});", SyntaxError );
1031 assertThrows("'use strict'; function f({x}) { let x = 0; }; f({});", SyntaxErr or); 1032 assertThrows("'use strict'; function f({x}) { let x = 0; }; f({});", SyntaxErr or);
1032 assertThrows("'use strict'; function f(x) { const x = 0; }; f({});", SyntaxErr or); 1033 assertThrows("'use strict'; function f(x) { const x = 0; }; f({});", SyntaxErr or);
1033 assertThrows("'use strict'; function f({x}) { const x = 0; }; f({});", SyntaxE rror); 1034 assertThrows("'use strict'; function f({x}) { const x = 0; }; f({});", SyntaxE rror);
1034 1035
1035 assertThrows("'use strict'; let g = (x) => { let x = 0; }; f({});", SyntaxErro r); 1036 assertThrows("'use strict'; let g = (x) => { let x = 0; }; f({});", SyntaxErro r);
1036 assertThrows("'use strict'; let g = ({x}) => { let x = 0; }; f({});", SyntaxEr ror); 1037 assertThrows("'use strict'; let g = ({x}) => { let x = 0; }; f({});", SyntaxEr ror);
1037 assertThrows("'use strict'; let g = (x) => { const x = 0; }; f({});", SyntaxEr ror); 1038 assertThrows("'use strict'; let g = (x) => { const x = 0; }; f({});", SyntaxEr ror);
1038 assertThrows("'use strict'; let g = ({x}) => { const x = 0; }; f({});", Syntax Error); 1039 assertThrows("'use strict'; let g = ({x}) => { const x = 0; }; f({});", Syntax Error);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1124 throw [1, 2, 3]; 1125 throw [1, 2, 3];
1125 } catch ([foo, ...bar]) { 1126 } catch ([foo, ...bar]) {
1126 assertEquals(1, foo); 1127 assertEquals(1, foo);
1127 assertEquals([2, 3], bar); 1128 assertEquals([2, 3], bar);
1128 } 1129 }
1129 1130
1130 assertEquals("hello", foo); 1131 assertEquals("hello", foo);
1131 assertEquals("world", bar); 1132 assertEquals("world", bar);
1132 assertEquals(42, baz); 1133 assertEquals(42, baz);
1133 })(); 1134 })();
OLDNEW
« no previous file with comments | « test/mjsunit/harmony/classes-derived-return-type.js ('k') | test/mjsunit/harmony/regress/regress-crbug-451770.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698