michael@0: load(libdir + "eqArrayHelper.js"); michael@0: michael@0: // ParallelArray surfaces michael@0: michael@0: function test() { michael@0: var desc = Object.getOwnPropertyDescriptor(this, "ParallelArray"); michael@0: assertEq(desc.enumerable, false); michael@0: assertEq(desc.configurable, true); michael@0: assertEq(desc.writable, true); michael@0: michael@0: assertEq(typeof ParallelArray, 'function'); michael@0: assertEq(Object.keys(ParallelArray).length, 0); michael@0: assertEq(ParallelArray.length, 0); michael@0: assertEq(ParallelArray.name, "ParallelArray"); michael@0: michael@0: assertEq(Object.getPrototypeOf(ParallelArray.prototype), Object.prototype); michael@0: assertEq(Object.prototype.toString.call(ParallelArray.prototype), "[object ParallelArray]"); michael@0: assertEq(Object.prototype.toString.call(new ParallelArray), "[object ParallelArray]"); michael@0: assertEq(Object.prototype.toString.call(ParallelArray()), "[object ParallelArray]"); michael@0: assertEq(Object.keys(ParallelArray.prototype).join(), ""); michael@0: assertEq(ParallelArray.prototype.constructor, ParallelArray); michael@0: michael@0: function checkMethod(name, arity) { michael@0: var desc = Object.getOwnPropertyDescriptor(ParallelArray.prototype, name); michael@0: assertEq(desc.enumerable, false); michael@0: assertEq(desc.configurable, true); michael@0: assertEq(desc.writable, true); michael@0: assertEq(typeof desc.value, 'function'); michael@0: assertEq(desc.value.name, name); michael@0: assertEq(desc.value.length, arity); michael@0: } michael@0: michael@0: checkMethod("map", 1); michael@0: checkMethod("reduce", 1); michael@0: checkMethod("scan", 1); michael@0: checkMethod("scatter", 1); michael@0: checkMethod("filter", 1); michael@0: checkMethod("flatten", 0); michael@0: checkMethod("partition", 1); michael@0: checkMethod("get", 1); michael@0: michael@0: function checkAccessor(name) { michael@0: var desc = Object.getOwnPropertyDescriptor(ParallelArray.prototype, name); michael@0: assertEq(desc.enumerable, false); michael@0: assertEq(desc.configurable, false); michael@0: assertEq(typeof desc.get, 'function'); michael@0: assertEq(desc.set, undefined); michael@0: } michael@0: michael@0: checkAccessor("length"); michael@0: checkAccessor("shape"); michael@0: } michael@0: michael@0: // FIXME(bug 844882) self-hosted object not array-like, exposes internal properties michael@0: // if (getBuildConfiguration().parallelJS) test();