| Index: test/mjsunit/regress/regress-581.js
|
| diff --git a/test/mjsunit/regress/regress-crbug-168545.js b/test/mjsunit/regress/regress-581.js
|
| similarity index 69%
|
| copy from test/mjsunit/regress/regress-crbug-168545.js
|
| copy to test/mjsunit/regress/regress-581.js
|
| index acc065e41101325dd9b105f73e50748b1c9cff13..4810042ad1e00cbd06b32a0bbb2fc230b6fdeb75 100644
|
| --- a/test/mjsunit/regress/regress-crbug-168545.js
|
| +++ b/test/mjsunit/regress/regress-581.js
|
| @@ -25,10 +25,31 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -var o = {};
|
| -Object.defineProperty(o, "length", { get: function() { throw "bail"; }});
|
| -assertThrows("new Int16Array(o);");
|
| +var pow30 = Math.pow(2, 30);
|
| +var pow31 = Math.pow(2, 31);
|
| +var pow32 = Math.pow(2, 32);
|
|
|
| var a = [];
|
| -Object.defineProperty(a, "0", { get: function() { throw "bail"; }});
|
| -assertThrows("new Int16Array(a);");
|
| +a[pow31] = 31;
|
| +
|
| +assertEquals(pow31 + 1, a.length);
|
| +var b = a.concat(a);
|
| +// b == { (2^31) : 42, (2^32 + 1) : 42 }, only first of which is set as
|
| +// array element. The second one is a property and does not affect the
|
| +// length property.
|
| +assertEquals(pow31 + 1, b.length);
|
| +assertTrue((pow32 + 1) in b);
|
| +assertEquals(31, b[pow31]);
|
| +assertEquals(31, b[pow32 + 1]);
|
| +
|
| +var c = [];
|
| +c[pow30] = 30;
|
| +c["a"] = 17;
|
| +var d = c.concat(c, a);
|
| +assertEquals(pow31 + 2, d.length);
|
| +assertTrue((pow32 + 2) in d);
|
| +assertFalse("a" in d);
|
| +assertEquals(30, d[pow30 + 0]);
|
| +assertEquals(30, d[pow31 + 1]);
|
| +assertEquals(31, d[pow32 + 2]);
|
| +
|
|
|