2015-05-12 17:13:12 +00:00
|
|
|
// 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 () {
|
2015-05-12 18:12:56 +00:00
|
|
|
"use strict";
|
|
|
|
class A {
|
|
|
|
s() {
|
|
|
|
super.bla = 10;
|
|
|
|
}
|
|
|
|
};
|
2015-05-12 17:13:12 +00:00
|
|
|
|
2015-05-12 18:12:56 +00:00
|
|
|
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);
|
2015-05-12 17:13:12 +00:00
|
|
|
})();
|
|
|
|
|
|
|
|
|
|
|
|
(function LoadFromSuper () {
|
2015-05-12 18:12:56 +00:00
|
|
|
"use strict";
|
|
|
|
class A {
|
|
|
|
s() {
|
|
|
|
return super.bla;
|
|
|
|
}
|
|
|
|
};
|
2015-05-12 17:13:12 +00:00
|
|
|
|
2015-05-12 18:12:56 +00:00
|
|
|
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"));
|
2015-05-12 17:13:12 +00:00
|
|
|
})();
|