michael@0: // Array.of can be transplanted to other classes. michael@0: michael@0: load(libdir + "asserts.js"); michael@0: michael@0: var hits = 0; michael@0: function Bag() { michael@0: hits++; michael@0: } michael@0: Bag.of = Array.of; michael@0: michael@0: hits = 0; michael@0: var actual = Bag.of("zero", "one"); michael@0: assertEq(hits, 1); michael@0: michael@0: var expected = new Bag; michael@0: expected[0] = "zero"; michael@0: expected[1] = "one"; michael@0: expected.length = 2; michael@0: assertDeepEq(actual, expected); michael@0: michael@0: hits = 0; michael@0: actual = Array.of.call(Bag, "zero", "one"); michael@0: assertEq(hits, 1); michael@0: assertDeepEq(actual, expected); michael@0: