js/src/jit-test/tests/baseline/funcall.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 function test1() {
     2     var f = function() { return 1; };
     4     for (var i=0; i<25; i++) {
     5 	f.call();
     6 	if (i > 20)
     7 	    f = Math.abs;
     8    }
     9 }
    10 test1();
    12 var origCall = Function.prototype.call;
    14 function test2() {
    15     var f = function() { return 1; };
    16     var c = 0;
    17     for (var i=0; i<25; i++) {
    18 	f.call();
    19 	if (i > 20)
    20 	    Function.prototype.call = function() { c++; };
    21     }
    22     assertEq(c, 3);
    23 }
    24 test2();
    25 Function.prototype.call = origCall;
    27 function test3() {
    28     var f = function() { return 1; };
    29     for (var i=0; i<25; i++) {
    30 	f.call();
    31 	if (i > 20)
    32 	    Function.prototype.call = undefined;
    33     }
    34 }
    35 try {
    36     test3();
    37     assertEq(0, 1);
    38 } catch(e) {}
    40 Function.prototype.call = origCall;
    42 function test4() {
    43     var f = function(a, b, c) {
    44 	assertEq(arguments.length, 1);
    45 	assertEq(a, 1);
    46 	assertEq(b, undefined);
    47 	assertEq(c, undefined);
    48 	return 1;
    49     };
    50     for (var i=0; i<25; i++) {
    51 	f.call(null, 1);
    52     }
    53 }
    54 test4();

mercurial