mirror of https://github.com/tc39/test262.git
41 lines
1.6 KiB
JavaScript
41 lines
1.6 KiB
JavaScript
// Copyright 2018 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: --allow-natives-syntax
|
|
|
|
function toString(o) {
|
|
%ToFastProperties(o.__proto__);
|
|
return Object.prototype.toString.call(o);
|
|
}
|
|
|
|
class TestNumber extends Number {}
|
|
TestNumber.prototype[Symbol.toStringTag] = "TestNumber";
|
|
assertEquals("[object TestNumber]", toString(new TestNumber), "Try #1");
|
|
assertEquals("[object TestNumber]", toString(new TestNumber), "Try #2");
|
|
|
|
class TestBoolean extends Boolean {}
|
|
TestBoolean.prototype[Symbol.toStringTag] = "TestBoolean";
|
|
assertEquals("[object TestBoolean]", toString(new TestBoolean), "Try #1");
|
|
assertEquals("[object TestBoolean]", toString(new TestBoolean), "Try #2");
|
|
|
|
class TestString extends String {}
|
|
TestString.prototype[Symbol.toStringTag] = "TestString";
|
|
assertEquals("[object TestString]", toString(new TestString), "Try #1");
|
|
assertEquals("[object TestString]", toString(new TestString), "Try #2");
|
|
|
|
class base {}
|
|
class TestBigInt extends base {}
|
|
TestBigInt.prototype[Symbol.toStringTag] = 'TestBigInt';
|
|
var b = new TestBigInt();
|
|
b.__proto__.__proto__ = BigInt.prototype;
|
|
assertEquals("[object TestBigInt]", toString(b), "Try #1");
|
|
assertEquals("[object TestBigInt]", toString(b), "Try #2");
|
|
|
|
class TestSymbol extends base {}
|
|
TestSymbol.prototype[Symbol.toStringTag] = 'TestSymbol';
|
|
var sym = new TestSymbol();
|
|
sym.__proto__.__proto__ = Symbol.prototype;
|
|
assertEquals("[object TestSymbol]", toString(sym), "Try #1");
|
|
assertEquals("[object TestSymbol]", toString(sym), "Try #2");
|