blob: 850eb85aa4b19c1c1f5e5794d77182f6be7ff905 [file] [log] [blame]
if (this.importScripts)
importScripts('../../resources/js-test.js');
description("Test to ensure that global constructors in workers environment have the right attributes");
function descriptorShouldBe(object, property, expected) {
var test = "Object.getOwnPropertyDescriptor(" + object + ", " + property + ")";
if ("writable" in expected) {
shouldBe(test + ".value", "" + expected.value);
shouldBeFalse(test + ".hasOwnProperty('get')");
shouldBeFalse(test + ".hasOwnProperty('set')");
} else {
shouldBe(test + ".get", "" + expected.get);
shouldBe(test + ".set", "" + expected.set);
shouldBeFalse(test + ".hasOwnProperty('value')");
shouldBeFalse(test + ".hasOwnProperty('writable')");
}
shouldBe(test + ".enumerable", "" + expected.enumerable);
shouldBe(test + ".configurable", "" + expected.configurable);
}
var global = this;
descriptorShouldBe("global", "'DataView'", {writable: true, enumerable: false, configurable: true, value:"DataView"});
descriptorShouldBe("global", "'EventSource'", {writable: true, enumerable: false, configurable: true, value:"EventSource"});
descriptorShouldBe("global", "'FileReaderSync'", {writable: true, enumerable: false, configurable: true, value:"FileReaderSync"});
descriptorShouldBe("global", "'Float64Array'", {writable: true, enumerable: false, configurable: true, value:"Float64Array"});
descriptorShouldBe("global", "'MessageChannel'", {writable: true, enumerable: false, configurable: true, value:"MessageChannel"});
descriptorShouldBe("global", "'WorkerLocation'", {writable: true, enumerable: false, configurable: true, value:"WorkerLocation"});
descriptorShouldBe("global", "'XMLHttpRequest'", {writable: true, enumerable: false, configurable: true, value:"XMLHttpRequest"});
finishJSTest();