blob: fe6198ea5f0794d139231bb8ffda5e337ca9975e [file] [log] [blame]
// |reftest| skip-if(!xulRuntime.shell) -- needs neuter()
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/
*/
"use strict"; // make test fail when limitation below is fixed
var gTestfile = 'element-setting-ToNumber-neuters.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 1001547;
var summary =
"Don't assert assigning into memory neutered while converting the value to " +
"assign into a number";
print(BUGNUMBER + ": " + summary);
/**************
* BEGIN TEST *
**************/
// Technically per current spec the element-sets should throw in strict mode,
// but we just silently do nothing for now, somewhat due to limitations of our
// internal MOP (which can't easily say "try this special behavior, else fall
// back on normal logic"), somewhat because it's consistent with current
// behavior (as of this test's addition) for out-of-bounds sets.
var ab1 = new ArrayBuffer(64);
var ta1 = new Uint32Array(ab1);
ta1[4] = { valueOf: function() { neuter(ab1, "change-data"); return 5; } };
var ab2 = new ArrayBuffer(64);
var ta2 = new Uint32Array(ab2);
ta2[4] = { valueOf: function() { neuter(ab2, "same-data"); return 5; } };
/******************************************************************************/
if (typeof reportCompare === "function")
reportCompare(true, true);
print("Tests complete");