mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1565001 - Part 5: Remove a Rhino test using uneval
. r=evilpie
Depends on D56919 Differential Revision: https://phabricator.services.mozilla.com/D56920 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
2db1069d07
commit
6753bd2508
@ -1,159 +0,0 @@
|
||||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/*
|
||||
*
|
||||
* Date: 15 Nov 2003
|
||||
* SUMMARY: Stressing the byte code generator
|
||||
*
|
||||
* See http://bugzilla.mozilla.org/show_bug.cgi?id=225831
|
||||
*
|
||||
*/
|
||||
//-----------------------------------------------------------------------------
|
||||
var UBound = 0;
|
||||
var BUGNUMBER = 225831;
|
||||
var summary = 'Stressing the byte code generator';
|
||||
var status = '';
|
||||
var statusitems = [];
|
||||
var actual = '';
|
||||
var actualvalues = [];
|
||||
var expect= '';
|
||||
var expectedvalues = [];
|
||||
|
||||
|
||||
function f() { return {x: 0}; }
|
||||
|
||||
var N = 300;
|
||||
var a = new Array(N + 1);
|
||||
a[N] = 10;
|
||||
a[0] = 100;
|
||||
|
||||
|
||||
status = inSection(1);
|
||||
|
||||
// build string of the form ++(a[++f().x + ++f().x + ... + ++f().x]) which
|
||||
// gives ++a[N]
|
||||
var str = "".concat("++(a[", repeat_str("++f().x + ", (N - 1)), "++f().x])");
|
||||
|
||||
// Use Script constructor instead of simple eval to test Rhino optimizer mode
|
||||
// because in Rhino, eval always uses interpreted mode.
|
||||
if (typeof Script == 'undefined')
|
||||
{
|
||||
print('Test skipped. Script not defined.');
|
||||
}
|
||||
else
|
||||
{
|
||||
var script = new Script(str);
|
||||
script();
|
||||
|
||||
actual = a[N];
|
||||
expect = 11;
|
||||
}
|
||||
addThis();
|
||||
|
||||
status = inSection(2);
|
||||
|
||||
|
||||
// build string of the form (a[f().x-- + f().x-- + ... + f().x--])--
|
||||
// which should give (a[0])--
|
||||
if (typeof Script == 'undefined')
|
||||
{
|
||||
print('Test skipped. Script not defined.');
|
||||
}
|
||||
else
|
||||
{
|
||||
str = "".concat("(a[", repeat_str("f().x-- + ", (N - 1)), "f().x--])--");
|
||||
script = new Script(str);
|
||||
script();
|
||||
|
||||
actual = a[0];
|
||||
expect = 99;
|
||||
}
|
||||
addThis();
|
||||
|
||||
|
||||
status = inSection(3);
|
||||
|
||||
// build string of the form [[1], [1], ..., [1]]
|
||||
if (typeof Script == 'undefined')
|
||||
{
|
||||
print('Test skipped. Script not defined.');
|
||||
}
|
||||
else
|
||||
{
|
||||
str = "".concat("[", repeat_str("[1], ", (N - 1)), "[1]]");
|
||||
script = new Script(str);
|
||||
script();
|
||||
|
||||
actual = uneval(script());
|
||||
expect = str;
|
||||
}
|
||||
addThis();
|
||||
|
||||
|
||||
status = inSection(4);
|
||||
|
||||
// build string of the form ({1:{a:1}, 2:{a:1}, ... N:{a:1}})
|
||||
if (typeof Script == 'undefined')
|
||||
{
|
||||
print('Test skipped. Script not defined.');
|
||||
}
|
||||
else
|
||||
{
|
||||
str = function() {
|
||||
var arr = new Array(N+1);
|
||||
arr[0] = "({";
|
||||
for (var i = 1; i < N; ++i) {
|
||||
arr[i] = i+":{a:1}, ";
|
||||
}
|
||||
arr[N] = N+":{a:1}})";
|
||||
return "".concat.apply("", arr);
|
||||
}();
|
||||
|
||||
script = new Script(str);
|
||||
script();
|
||||
|
||||
actual = uneval(script());
|
||||
expect = str;
|
||||
}
|
||||
addThis();
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
test();
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
function repeat_str(str, repeat_count)
|
||||
{
|
||||
var arr = new Array(--repeat_count);
|
||||
while (repeat_count != 0)
|
||||
arr[--repeat_count] = str;
|
||||
return str.concat.apply(str, arr);
|
||||
}
|
||||
|
||||
|
||||
function addThis()
|
||||
{
|
||||
statusitems[UBound] = status;
|
||||
actualvalues[UBound] = actual;
|
||||
expectedvalues[UBound] = expect;
|
||||
UBound++;
|
||||
}
|
||||
|
||||
|
||||
function test()
|
||||
{
|
||||
printBugNumber(BUGNUMBER);
|
||||
printStatus(summary);
|
||||
|
||||
for (var i=0; i<UBound; i++)
|
||||
{
|
||||
reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user