| // 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. |
| |
| (function StoreToSuper () { |
| "use strict"; |
| class A { |
| s() { |
| super.bla = 10; |
| } |
| }; |
| |
| let a = new A(); |
| (new A).s.call(a); |
| assertEquals(10, a.bla); |
| assertThrows(function() { (new A).s.call(undefined); }, TypeError); |
| assertThrows(function() { (new A).s.call(42); }, TypeError); |
| assertThrows(function() { (new A).s.call(null); }, TypeError); |
| assertThrows(function() { (new A).s.call("abc"); }, TypeError); |
| })(); |
| |
| |
| (function LoadFromSuper () { |
| "use strict"; |
| class A { |
| s() { |
| return super.bla; |
| } |
| }; |
| |
| let a = new A(); |
| assertSame(undefined, (new A).s.call(a)); |
| assertSame(undefined, (new A).s.call(undefined)); |
| assertSame(undefined, (new A).s.call(42)); |
| assertSame(undefined, (new A).s.call(null)); |
| assertSame(undefined, (new A).s.call("abc")); |
| })(); |