blob: 7b08a72d4fbbcaf57e9e6e6816f93f19e47b0a26 [file] [log] [blame]
// 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.
var funcs = [
// https://code.google.com/p/v8/issues/detail?id=4002
// Error,
// EvalError,
// RangeError,
// ReferenceError,
// SyntaxError,
// TypeError,
// URIError,
// https://code.google.com/p/v8/issues/detail?id=4003
// RegExp,
// https://code.google.com/p/v8/issues/detail?id=4004
// Date,
// https://code.google.com/p/v8/issues/detail?id=4006
// String,
// Boolean,
// Number,
// https://code.google.com/p/v8/issues/detail?id=4001
ArrayBuffer,
DataView,
Float32Array,
Float64Array,
Int16Array,
Int32Array,
Int8Array,
Map,
Object,
Promise,
// Proxy,
Set,
Symbol,
Uint16Array,
Uint32Array,
Uint8Array,
Uint8ClampedArray,
WeakMap,
WeakSet,
];
for (var fun of funcs) {
var p = fun.prototype;
// @@toStringTag is tested separately, and interferes with this test.
if (Symbol.toStringTag) delete p[Symbol.toStringTag];
assertEquals('[object Object]', Object.prototype.toString.call(p));
}
// These still have special prototypes for legacy reason.
var funcs = [
Array,
Function,
];
for (var fun of funcs) {
var p = fun.prototype;
assertEquals(`[object ${fun.name}]`, Object.prototype.toString.call(p));
}