js/src/jit-test/tests/basic/testStringLengthNoTinyId.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 // Second testPropagatedFunArgs test -- this is a crash-test.
     2 (function () {
     3   var escapee;
     5   function testPropagatedFunArgs()
     6   {
     7     const magic = 42;
     9     var win = this;
    10     var res = [], q = [];
    11     function addEventListener(name, func, flag) {
    12       q.push(func);
    13     }
    15     var pageInfo = "pageInfo", obs;
    16     addEventListener("load", handleLoad, true);
    18     var observer = {
    19       observe: function(win, topic, data) {
    20         // obs.removeObserver(observer, "page-info-dialog-loaded");
    21         handlePageInfo();
    22       }
    23     };
    25     function handleLoad() {
    26       //pageInfo = { toString: function() { return "pageInfo"; } };
    27       obs = { addObserver: function (obs, topic, data) { obs.observe(win, topic, data); } };
    28       obs.addObserver(observer, "page-info-dialog-loaded", false);
    29     }
    31     function handlePageInfo() {
    32       res.push(pageInfo);
    33       function $(aId) {
    34         function notSafe() {
    35           return magic;
    36         }
    37         notSafe();
    38         res.push(pageInfo);
    39       };
    40       var feedTab = $("feedTab");
    41     }
    43     escapee = q[0];
    44     return res.join(',');
    45   }
    47   testPropagatedFunArgs();
    49   escapee();
    50 })();
    52 function testStringLengthNoTinyId()
    53 {
    54   var x = "unset";
    55   var t = new String("");
    56   for (var i = 0; i < 5; i++)
    57     x = t["-1"];
    59   var r = "t['-1'] is " + x;
    60   t["-1"] = "foo";
    61   r += " when unset, '" + t["-1"] + "' when set";
    62   return r;
    63 }
    64 assertEq(testStringLengthNoTinyId(), "t['-1'] is undefined when unset, 'foo' when set");

mercurial