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

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

Issue 1300103005: [parser] disallow language mode directive in body of function with non-simple parameters (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: flag implications don't work in test suite? Created 5 years, 3 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 5 // Flags: --harmony-destructuring
6 // Flags: --harmony-arrow-functions --strong-mode --allow-natives-syntax 6 // Flags: --harmony-arrow-functions --strong-mode --allow-natives-syntax
7 7
8 (function() { 8 (function() {
9 function f({ x = function() { return []; } }) { "use strong"; return x(); } 9 var f = (function() {
10 "use strong";
11 return function f({ x = function() { return []; } }) { return x(); };
12 })();
10 var a = f({ x: undefined }); 13 var a = f({ x: undefined });
11 assertTrue(%IsStrong(a)); 14 assertTrue(%IsStrong(a));
12 15
13 // TODO(rossberg): Loading non-existent properties during destructuring should 16 // TODO(rossberg): Loading non-existent properties during destructuring should
14 // not throw in strong mode. 17 // not throw in strong mode.
15 assertThrows(function() { f({}); }, TypeError); 18 assertThrows(function() { f({}); }, TypeError);
16 19
17 function weakf({ x = function() { return []; } }) { return x(); } 20 function weakf({ x = function() { return []; } }) { return x(); }
18 a = weakf({}); 21 a = weakf({});
19 assertFalse(%IsStrong(a)); 22 assertFalse(%IsStrong(a));
20 23
21 function outerf() { return []; } 24 function outerf() { return []; }
22 function f2({ x = outerf }) { "use strong"; return x(); } 25 var f2 = (function() {
26 "use strong";
27 return function f2({ x = outerf }) { return x(); };
28 })();
23 a = f2({ x: undefined }); 29 a = f2({ x: undefined });
24 assertFalse(%IsStrong(a)); 30 assertFalse(%IsStrong(a));
25 })(); 31 })();
OLDNEW
« no previous file with comments | « test/mjsunit/harmony/spread-call-super-property.js ('k') | test/mjsunit/strong/function-arity.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698