summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/arguments.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/arguments.js')
-rw-r--r--deps/v8/test/mjsunit/arguments.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/arguments.js b/deps/v8/test/mjsunit/arguments.js
index 56c1d7224d..26eb38912a 100644
--- a/deps/v8/test/mjsunit/arguments.js
+++ b/deps/v8/test/mjsunit/arguments.js
@@ -25,6 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// Flags: --allow-natives-syntax
+
function argc0() {
return arguments.length;
}
@@ -188,3 +190,17 @@ function arg_set(x) { return (arguments[x] = 117); }
assertEquals(undefined, arg_get(0xFFFFFFFF));
assertEquals(true, arg_del(0xFFFFFFFF));
assertEquals(117, arg_set(0xFFFFFFFF));
+
+(function() {
+ function f(a) { return arguments; }
+ var a = f(1,2,3);
+ // Turn arguments into slow.
+ assertTrue(%HasSloppyArgumentsElements(a));
+ a[10000] = 1;
+ assertTrue(%HasSloppyArgumentsElements(a));
+ // Make it fast again by adding values.
+ for (var i = 0; i < 1000; i++) {
+ a[i] = 1.5;
+ }
+ assertTrue(%HasSloppyArgumentsElements(a));
+})();