blob: d0a895b073be1632d6a55fe06f9e45079d746ab3 [file] [log] [blame]
function Test(value, returnIt) {
this.value = value;
this.returnIt = returnIt;
}
var tests = [
new Test("string", false),
new Test(5, false),
new Test(6.5, false),
new Test(void(0), false),
new Test(null, false),
new Test(true, false),
new Test(false, false),
new Test(Symbol.iterator, false),
new Test({f:42}, true),
new Test([1, 2, 3], true),
new Test(new String("string"), true),
new Test(new Number(42), true),
new Test(new Boolean(false), true),
new Test(new Boolean(false), true),
new Test(Object(Symbol.iterator), true),
];
for (let i = 0; i < 1000; ++i) {
tests.forEach(function (test) {
function Constructor() {
return test.value;
}
var result = new Constructor();
if (test.returnIt) {
if (test.value !== result) {
throw "Bad result: " + result;
}
} else {
if (!(result instanceof Constructor)) {
throw "Bad result: " + result;
}
}
});
}