|  | // 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")); | 
|  | })(); |