js/src/jit-test/tests/arguments/argsx-2.js

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 actual = '';
     2 expected = "function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},3,1,2,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,[object Object],a,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,function f() {\n  var a = arguments;\n  \n  appendToActual(a.callee);\n  appendToActual(a.length);\n  appendToActual(a[0]);\n  appendToActual(a[1]);\n},2,abc,def,"
     4 // args object created on trace
     6 function f() {
     7   var a = arguments;
     9   appendToActual(a.callee);
    10   appendToActual(a.length);
    11   appendToActual(a[0]);
    12   appendToActual(a[1]);
    13 }
    15 for (var i = 0; i < 10; ++i)
    16   f(1, 2, 3);
    17 for (var i = 0; i < 10; ++i)
    18   f({}, 'a');
    19 for (var i = 0; i < 10; ++i)
    20   f('abc', 'def');
    23 assertEq(actual, expected)

mercurial