js/src/tests/js1_5/extensions/regress-313938.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/js1_5/extensions/regress-313938.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,54 @@
     1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.8 +
     1.9 +//-----------------------------------------------------------------------------
    1.10 +var BUGNUMBER = 313938;
    1.11 +var summary = 'Root access in jsscript.c';
    1.12 +var actual = '';
    1.13 +var expect = '';
    1.14 +
    1.15 +printBugNumber(BUGNUMBER);
    1.16 +printStatus (summary);
    1.17 +
    1.18 +if (typeof Script == 'undefined')
    1.19 +{
    1.20 +  print('Test skipped. Script not defined.');
    1.21 +  reportCompare("Script not defined, Test skipped.",
    1.22 +                "Script not defined, Test skipped.",
    1.23 +                summary);
    1.24 +}
    1.25 +else
    1.26 +{
    1.27 +  var str = " 2;".substring(1);
    1.28 +  "1".substring(2);
    1.29 +  expect = Script.prototype.compile(str).toSource();
    1.30 +
    1.31 +  var likeString = {
    1.32 +    toString: function() {
    1.33 +      var tmp = str;
    1.34 +      str = null;
    1.35 +      return tmp;
    1.36 +    }
    1.37 +  };
    1.38 +
    1.39 +  TWO = 2.0;
    1.40 +
    1.41 +  var likeObject = {
    1.42 +    valueOf: function() {
    1.43 +      if (typeof gc == "function")
    1.44 +        gc();
    1.45 +      for (var i = 0; i != 40000; ++i) {
    1.46 +        var tmp = 1e100 * TWO;
    1.47 +      }
    1.48 +      return this;
    1.49 +    }
    1.50 +  }
    1.51 +
    1.52 +  var s = Script.prototype.compile(likeString, likeObject);
    1.53 +  var actual = s.toSource();
    1.54 +  printStatus(expect === actual);
    1.55 +
    1.56 +  reportCompare(expect, actual, summary);
    1.57 +}

mercurial