Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | // ParallelArray methods throw when passed a this-value that isn't a ParallelArray. |
michael@0 | 2 | |
michael@0 | 3 | load(libdir + "asserts.js"); |
michael@0 | 4 | |
michael@0 | 5 | function testcase(obj, fn) { |
michael@0 | 6 | assertEq(typeof fn, "function"); |
michael@0 | 7 | var args = Array.slice(arguments, 2); |
michael@0 | 8 | assertThrowsInstanceOf(function () { fn.apply(obj, args); }, TypeError); |
michael@0 | 9 | } |
michael@0 | 10 | |
michael@0 | 11 | function test(obj) { |
michael@0 | 12 | function f() {} |
michael@0 | 13 | testcase(obj, ParallelArray.prototype.map, f); |
michael@0 | 14 | testcase(obj, ParallelArray.prototype.reduce, f); |
michael@0 | 15 | testcase(obj, ParallelArray.prototype.scan, f); |
michael@0 | 16 | testcase(obj, ParallelArray.prototype.scatter, [0]); |
michael@0 | 17 | testcase(obj, ParallelArray.prototype.filter, [0]); |
michael@0 | 18 | testcase(obj, ParallelArray.prototype.flatten); |
michael@0 | 19 | testcase(obj, ParallelArray.prototype.partition, 2); |
michael@0 | 20 | testcase(obj, ParallelArray.prototype.get, [1]); |
michael@0 | 21 | } |
michael@0 | 22 | |
michael@0 | 23 | // FIXME(bug 844887) check type of this |
michael@0 | 24 | // if (getBuildConfiguration().parallelJS) { |
michael@0 | 25 | // test(ParallelArray.prototype); |
michael@0 | 26 | // test(Object.create(new ParallelArray)); |
michael@0 | 27 | // test({}); |
michael@0 | 28 | // test(null); |
michael@0 | 29 | // test(undefined); |
michael@0 | 30 | // } |