michael@0: load(libdir + 'array-compare.js'); michael@0: michael@0: function f(v) { michael@0: return v.length; michael@0: } michael@0: michael@0: function g(v) { michael@0: return v.length; michael@0: } michael@0: michael@0: function h(v) { michael@0: return v.length; michael@0: } michael@0: michael@0: function aliasCheck(v) { michael@0: v[0] = v.length; michael@0: v[1] = v.length; michael@0: v[2] = v.length; michael@0: return v; michael@0: } michael@0: michael@0: for(let i = 41; i; i--) { michael@0: assertEq(f([]), 0); michael@0: assertEq(f([0]), 1); michael@0: assertEq(f([0, 1]), 2); michael@0: assertEq(f([0, 1, 2]), 3); michael@0: assertEq(g(""), 0); michael@0: assertEq(g("1"), 1); michael@0: assertEq(g("12"), 2); michael@0: assertEq(g("123"), 3); michael@0: assertEq(h({}), undefined); michael@0: assertEq(h({a: 1}), undefined); michael@0: assertEq(h({a: 1, b: 2}), undefined); michael@0: assertEq(h({a: 1, b: 2, length: 3}), 3); michael@0: assertEq(arraysEqual(aliasCheck([0, 1, 2]), [3, 3, 3]), true); michael@0: }