| Index: test/webkit/class-syntax-default-constructor.js
|
| diff --git a/test/webkit/dfg-inline-arguments-become-double.js b/test/webkit/class-syntax-default-constructor.js
|
| similarity index 63%
|
| copy from test/webkit/dfg-inline-arguments-become-double.js
|
| copy to test/webkit/class-syntax-default-constructor.js
|
| index b7db7ec002f31e92cf82c6f8b5d23f269a7da83c..841afddadcc374eaae10ac8d0be9beb6de828402 100644
|
| --- a/test/webkit/dfg-inline-arguments-become-double.js
|
| +++ b/test/webkit/class-syntax-default-constructor.js
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2013 the V8 project authors. All rights reserved.
|
| +// Copyright 2015 the V8 project authors. All rights reserved.
|
| // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
|
| //
|
| // Redistribution and use in source and binary forms, with or without
|
| @@ -21,34 +21,22 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
| // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -description(
|
| -"This tests that inlining preserves function.arguments functionality if the arguments are reassigned to refer to an int32."
|
| -);
|
| +// Flags: --harmony-sloppy
|
|
|
| -function foo() {
|
| - return bar.arguments;
|
| -}
|
| +description('Tests for ES6 class syntax default constructor');
|
|
|
| -function bar(a,b,c) {
|
| - b = 42.5;
|
| - return foo(a,b,c);
|
| -}
|
| +class A { };
|
| +class B extends A { };
|
|
|
| -function baz(a,b,c) {
|
| - return bar(a,b,c);
|
| -}
|
| -
|
| -function argsToStr(args) {
|
| - var str = args + ": ";
|
| - for (var i = 0; i < args.length; ++i) {
|
| - if (i)
|
| - str += ", ";
|
| - str += args[i];
|
| - }
|
| - return str;
|
| -}
|
| -
|
| -for (var __i = 0; __i < 200; ++__i)
|
| - shouldBe("argsToStr(baz(\"a\" + __i, \"b\" + __i, \"c\" + __i))", "\"[object Arguments]: a" + __i + ", 42.5, c" + __i + "\"");
|
| +shouldBeTrue('new A instanceof A');
|
| +shouldThrow('A()', '"TypeError: Class constructors cannot be invoked without \'new\'"');
|
| +shouldBeTrue('A.prototype.constructor instanceof Function');
|
| +shouldBe('A.prototype.constructor.name', '"A"');
|
| +shouldBeTrue('new B instanceof A; new B instanceof A');
|
| +shouldThrow('B()', '"TypeError: Class constructors cannot be invoked without \'new\'"');
|
| +shouldBe('B.prototype.constructor.name', '"B"');
|
| +shouldBeTrue('A !== B');
|
| +shouldBeTrue('A.prototype.constructor !== B.prototype.constructor');
|
| +shouldBe('new (class extends (class { constructor(a, b) { return [a, b]; } }) {})(1, 2)', '[1, 2]');
|
|
|
| var successfullyParsed = true;
|
|
|