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

Unified Diff: test/mjsunit/es6/regress/regress-new-target-context.js

Issue 1492793002: [fullcode] Switch passing of new.target to register. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Ported. Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/full-codegen/x64/full-codegen-x64.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/es6/regress/regress-new-target-context.js
diff --git a/test/mjsunit/es6/regress/regress-new-target-context.js b/test/mjsunit/es6/regress/regress-new-target-context.js
new file mode 100644
index 0000000000000000000000000000000000000000..eadf6e3aec07ef849c8afc8a113ece599fa425ff
--- /dev/null
+++ b/test/mjsunit/es6/regress/regress-new-target-context.js
@@ -0,0 +1,25 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Test access of the new.target value in functions that also allocate local
+// function contexts of varying sizes, making sure the value is not clobbered.
+
+function makeFun(n) {
+ var source = "(function f" + n + "() { ";
+ for (var i = 0; i < n; ++i) source += "var v" + i + "; ";
+ source += "(function() { 0 ";
+ for (var i = 0; i < n; ++i) source += "+ v" + i + " ";
+ source += "})(); return { value: new.target }; })";
+ return eval(source);
+}
+
+// Exercise fast case.
+var a = makeFun(4);
+assertEquals(a, new a().value);
+assertEquals(undefined, a().value);
+
+// Exercise slow case.
+var b = makeFun(128);
+assertEquals(b, new b().value);
+assertEquals(undefined, b().value);
« no previous file with comments | « src/full-codegen/x64/full-codegen-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698