Index: test/mjsunit/strong/classes.js |
diff --git a/test/mjsunit/strong/classes.js b/test/mjsunit/strong/classes.js |
deleted file mode 100644 |
index 92dea0f2a9cf571923e7e964cc5bf189b598cb07..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/strong/classes.js |
+++ /dev/null |
@@ -1,118 +0,0 @@ |
-// 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. |
- |
-// Flags: --strong-mode |
- |
-'use strong'; |
- |
-class C {} |
- |
-let indirect_eval = eval; |
- |
-function assertTypeError(script) { assertThrows(script, TypeError) } |
-function assertSyntaxError(script) { assertThrows(script, SyntaxError) } |
-function assertReferenceError(script) { assertThrows(script, ReferenceError) } |
- |
-(function ImmutableClassBindings() { |
- class D {} |
- assertTypeError(function(){ indirect_eval("C = 0") }); |
- assertEquals('function', typeof C); |
- assertEquals('function', typeof D); |
- assertTypeError("'use strong'; (function f() {class E {}; E = 0})()"); |
-})(); |
- |
-function constructor(body) { |
- return "'use strong'; " + |
- "(class extends Object { constructor() { " + body + " } })"; |
-} |
- |
-(function NoSuperExceptCall() { |
- assertSyntaxError(constructor("super.a;")); |
- assertSyntaxError(constructor("super['a'];")); |
- assertSyntaxError(constructor("super.f();")); |
- assertSyntaxError(constructor("super.a;")); |
- assertSyntaxError(constructor("{ super.a }")); |
- assertSyntaxError(constructor("if (0) super.a;")); |
- // TODO(rossberg): arrow functions do not handle 'super' yet. |
- // assertSyntaxError(constructor("() => super.a;")); |
- // assertSyntaxError(constructor("() => () => super.a;")); |
- // assertSyntaxError(constructor("() => { () => if (0) { super.a; } }")); |
-})(); |
- |
-(function NoMissingSuper() { |
- assertReferenceError(constructor("")); |
- assertReferenceError(constructor("1")); |
-})(); |
- |
-(function NoNestedSuper() { |
- assertSyntaxError(constructor("super(), 0;")); |
- assertSyntaxError(constructor("(super());")); |
- assertSyntaxError(constructor("super().a;")); |
- assertSyntaxError(constructor("(() => super())();")); |
- assertSyntaxError(constructor("{ super(); }")); |
- assertSyntaxError(constructor("if (1) super();")); |
- assertSyntaxError(constructor("label: super();")); |
-})(); |
- |
-(function NoDuplicateSuper() { |
- assertSyntaxError(constructor("super(), super();")); |
- assertSyntaxError(constructor("super(); super();")); |
- assertSyntaxError(constructor("super(); (super());")); |
- assertSyntaxError(constructor("super(); { super() }")); |
- assertSyntaxError(constructor("super(); (() => super())();")); |
-})(); |
- |
-(function NoSuperAfterThis() { |
- assertSyntaxError(constructor("this.a = 0, super();")); |
- assertSyntaxError(constructor("this.a = 0; super();")); |
- assertSyntaxError(constructor("this.a = 0; super(); this.b = 0;")); |
- assertSyntaxError(constructor("this.a = 0; (super());")); |
- assertSyntaxError(constructor("super(this.a = 0);")); |
-})(); |
- |
-(function NoReturnValue() { |
- assertSyntaxError(constructor("return {};")); |
- assertSyntaxError(constructor("return undefined;")); |
- assertSyntaxError(constructor("return this;")); |
- assertSyntaxError(constructor("return this.a = 0;")); |
- assertSyntaxError(constructor("{ return {}; }")); |
- assertSyntaxError(constructor("if (1) return {};")); |
-})(); |
- |
-(function NoReturnBeforeSuper() { |
- assertSyntaxError(constructor("return; super();")); |
- assertSyntaxError(constructor("if (0) return; super();")); |
- assertSyntaxError(constructor("{ return; } super();")); |
-})(); |
- |
-(function NoReturnBeforeThis() { |
- assertSyntaxError(constructor("return; this.a = 0;")); |
- assertSyntaxError(constructor("if (0) return; this.a = 0;")); |
- assertSyntaxError(constructor("{ return; } this.a = 0;")); |
-})(); |
- |
-(function NoThisExceptInitialization() { |
- assertSyntaxError(constructor("this;")); |
- assertSyntaxError(constructor("this.a;")); |
- assertSyntaxError(constructor("this['a'];")); |
- assertSyntaxError(constructor("this();")); |
- assertSyntaxError(constructor("this.a();")); |
- assertSyntaxError(constructor("this.a.b = 0;")); |
- assertSyntaxError(constructor("{ this }")); |
- assertSyntaxError(constructor("if (0) this;")); |
- // TODO(rossberg): this does not handle arrow functions yet. |
- // assertSyntaxError(constructor("() => this;")); |
- // assertSyntaxError(constructor("() => () => this;")); |
- // assertSyntaxError(constructor("() => { () => if (0) { this; } }")); |
-})(); |
- |
-(function NoNestedThis() { |
- assertSyntaxError(constructor("(this.a = 0);")); |
- assertSyntaxError(constructor("{ this.a = 0; }")); |
- assertSyntaxError(constructor("if (0) this.a = 0;")); |
- // TODO(rossberg): this does not handle arrow functions yet. |
- // assertSyntaxError(constructor("() => this.a = 0;")); |
- // assertSyntaxError(constructor("() => { this.a = 0; }")); |
- assertSyntaxError(constructor("label: this.a = 0;")); |
-})(); |