function shouldBe(actual, expected) { if (actual !== expected) throw new Error('bad value: ' + actual); } var globalObject = createGlobalObject(); var constructor = globalObject.Object; var tests = [ [ null, globalObject.Object ], [ undefined, globalObject.Object ], [ "Hello", globalObject.String ], [ 42, globalObject.Number ], [ false, globalObject.Boolean ], [ Symbol("Cocoa"), globalObject.Symbol ], ]; for (var i = 0; i < 1e4; ++i) { for (var [target, cls] of tests) { var result = constructor(target); shouldBe(result instanceof cls, true); } }