Index: test/mjsunit/strong/class-literals.js |
diff --git a/test/mjsunit/strong/class-literals.js b/test/mjsunit/strong/class-literals.js |
deleted file mode 100644 |
index a0e7280abce4eb2b0bd04258e42ecff06639faa1..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/strong/class-literals.js |
+++ /dev/null |
@@ -1,159 +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 --allow-natives-syntax |
- |
-'use strict'; |
- |
-function assertWeakClassWeakInstances(x) { |
- assertFalse(%IsStrong(x)); |
- assertFalse(%IsStrong(x.prototype)); |
- assertFalse(%IsStrong(new x)); |
-} |
- |
-function assertWeakClassStrongInstances(x) { |
- assertFalse(%IsStrong(x)); |
- assertFalse(%IsStrong(x.prototype)); |
- assertTrue(%IsStrong(new x)); |
-} |
- |
-function assertStrongClassWeakInstances(x) { |
- assertTrue(%IsStrong(x)); |
- assertTrue(%IsStrong(x.prototype)); |
- assertFalse(%IsStrong(new x)); |
-} |
- |
-function assertStrongClassStrongInstances(x) { |
- assertTrue(%IsStrong(x)); |
- assertTrue(%IsStrong(x.prototype)); |
- assertTrue(%IsStrong(new x)); |
-} |
- |
-function getWeakClass() { |
- return (class {}); |
-} |
- |
-function getWeakClassExtends(x) { |
- return (class extends x {}); |
-} |
- |
-function getStrongClass() { |
- "use strong"; |
- return (class {}); |
-} |
- |
-function getStrongClassExtends(x) { |
- "use strong"; |
- return (class extends x {}); |
-} |
- |
-(function SimpleWeakClassLiterals() { |
- class C {}; |
- class D extends C {}; |
- class E extends Object {}; |
- |
- assertWeakClassWeakInstances(C); |
- assertWeakClassWeakInstances(D); |
- assertWeakClassWeakInstances(E); |
- |
- assertWeakClassWeakInstances(class {}); |
- assertWeakClassWeakInstances(class extends Object {}); |
- assertWeakClassWeakInstances(class extends C {}); |
- assertWeakClassWeakInstances(class extends class {} {}); |
-})(); |
- |
-(function SimpleStrongClassLiterals() { |
- 'use strong'; |
- class C {}; |
- class D extends C {}; |
- |
- assertStrongClassStrongInstances(C); |
- assertStrongClassStrongInstances(D); |
- |
- assertStrongClassStrongInstances(class {}); |
- assertStrongClassStrongInstances(class extends C {}); |
- assertStrongClassStrongInstances(class extends class {} {}); |
-})(); |
- |
-(function MixedWeakClassLiterals() { |
- class C extends getStrongClass() {}; |
- class D extends getStrongClassExtends((class {})) {}; |
- class E extends getStrongClassExtends(C) {}; |
- |
- assertWeakClassStrongInstances(C); |
- assertWeakClassStrongInstances(class extends getStrongClass() {}); |
- |
- assertWeakClassWeakInstances(D); |
- assertWeakClassWeakInstances( |
- class extends getStrongClassExtends((class {})) {}); |
- |
- assertWeakClassStrongInstances(E); |
- assertWeakClassStrongInstances( |
- class extends getStrongClassExtends(class extends getStrongClass() {}) {}); |
-})(); |
- |
-(function MixedStrongClassLiterals() { |
- 'use strong'; |
- class C extends getWeakClass() {}; |
- class D extends getWeakClassExtends((class {})) {}; |
- class E extends getWeakClassExtends(C) {}; |
- class F extends Object {}; |
- |
- assertStrongClassWeakInstances(C); |
- assertStrongClassWeakInstances(class extends getWeakClass() {}); |
- |
- assertStrongClassStrongInstances(D); |
- assertStrongClassStrongInstances( |
- class extends getWeakClassExtends((class {})) {}); |
- |
- assertStrongClassWeakInstances(E); |
- assertStrongClassWeakInstances( |
- class extends getWeakClassExtends(class extends getWeakClass() {}) {}); |
- |
- assertStrongClassWeakInstances(F); |
- assertStrongClassWeakInstances(class extends Object {}); |
-})(); |
- |
-(function WeakMonkeyPatchedClassLiterals() { |
- class C {}; |
- assertWeakClassWeakInstances(C); |
- C.__proto__ = getStrongClass(); |
- // C's default constructor doesn't call super. |
- assertWeakClassWeakInstances(C); |
- |
- class D extends Object {}; |
- assertWeakClassWeakInstances(D); |
- D.__proto__ = getStrongClass(); |
- // D is a derived class, so its default constructor calls super. |
- assertWeakClassStrongInstances(D); |
- |
- class E extends (class {}) {}; |
- E.__proto__ = C; |
- assertWeakClassWeakInstances(E); |
- |
- class F extends (class {}) {}; |
- F.__proto__ = D; |
- assertWeakClassStrongInstances(F); |
- |
- class G extends getStrongClass() {}; |
- G.__proto__ = getWeakClass(); |
- assertWeakClassWeakInstances(G); |
-})(); |
- |
-(function StrongMonkeyPatchedClassLiterals() { |
- let C = getStrongClassExtends(getWeakClassExtends(getStrongClass())); |
- let D = getStrongClassExtends(getWeakClassExtends(getWeakClass())); |
- |
- assertStrongClassStrongInstances(C); |
- C.__proto__.__proto__ = getWeakClass(); |
- assertStrongClassWeakInstances(C); |
- C.__proto__.__proto__ = getStrongClass(); |
- assertStrongClassStrongInstances(C); |
- |
- assertStrongClassWeakInstances(D); |
- D.__proto__.__proto__ = getStrongClass(); |
- assertStrongClassStrongInstances(D); |
- D.__proto__.__proto__ = getWeakClass(); |
- assertStrongClassWeakInstances(D); |
-})(); |