michael@0: /* michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/licenses/publicdomain/ michael@0: */ michael@0: michael@0: var BUGNUMBER = 677820; michael@0: var summary = michael@0: "String.prototype.match must define matches on the returned array, not set " + michael@0: "them"; michael@0: michael@0: print(BUGNUMBER + ": " + summary); michael@0: michael@0: /************** michael@0: * BEGIN TEST * michael@0: **************/ michael@0: michael@0: var called = false; michael@0: function setterFunction(v) { called = true; } michael@0: function getterFunction(v) { return "getter"; } michael@0: michael@0: Object.defineProperty(Array.prototype, 1, michael@0: { get: getterFunction, set: setterFunction }); michael@0: michael@0: assertEq(called, false); michael@0: var matches = "abcdef".match(/./g); michael@0: assertEq(called, false); michael@0: assertEq(matches.length, 6); michael@0: assertEq(matches[0], "a"); michael@0: assertEq(matches[1], "b"); michael@0: assertEq(matches[2], "c"); michael@0: assertEq(matches[3], "d"); michael@0: assertEq(matches[4], "e"); michael@0: assertEq(matches[5], "f"); michael@0: michael@0: var desc = Object.getOwnPropertyDescriptor(Array.prototype, 1); michael@0: assertEq(desc.get, getterFunction); michael@0: assertEq(desc.set, setterFunction); michael@0: assertEq(desc.enumerable, false); michael@0: assertEq(desc.configurable, false); michael@0: assertEq([][1], "getter"); michael@0: michael@0: assertEq(called, false); michael@0: michael@0: if (typeof reportCompare === "function") michael@0: reportCompare(true, true); michael@0: michael@0: print("Tests complete");