Merge to mozilla central for a whole lot of JavaScript tests.

This commit is contained in:
Shawn Wilsher 2008-11-27 10:56:04 -08:00
Родитель c87f267ece be5c737a37
Коммит ecfd0eb7d2
43 изменённых файлов: 2425 добавлений и 641 удалений

Просмотреть файл

@ -99,7 +99,12 @@ usage: bisect.sh -p product -b branch -e extra\\
If the bad revision (test failed) occurred prior to the good revision
(test passed), the script will search for the first good revision which
fixed the failing test.
-D By default, clobber builds will be used. For mercurial based builds
on branch 1.9.1 and later, you may specify -D to use depends builds.
This may achieve significant speed advantages by eliminating the need
to perform clobber builds for each bisection.
-J javascriptoptions optional. Set JavaScript options:
-Z n Set gczeal to n. Currently, only valid for
debug builds of Gecko 1.8.1.15, 1.9.0 and later.
@ -112,7 +117,7 @@ EOF
verbose=0
while getopts "p:b:T:e:t:S:G:B:J:" optname;
while getopts "p:b:T:e:t:S:G:B:J:D" optname;
do
case $optname in
p) bisect_product=$OPTARG;;
@ -125,6 +130,7 @@ do
G) bisect_good="$OPTARG";;
B) bisect_bad="$OPTARG";;
J) javascriptoptions=$OPTARG;;
D) bisect_depends=1;;
esac
done
@ -356,7 +362,9 @@ EOF
fi
echo "checking that the test fails in the bad revision $localbad:$bisect_bad"
eval $TEST_DIR/bin/builder.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -B "clobber" > /dev/null
if [[ -z "$bisect_depends" ]]; then
eval $TEST_DIR/bin/builder.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -B "clobber" > /dev/null
fi
hg -R $REPO update -C -r $bisect_bad
bisect_log=`eval $TEST_JSDIR/runtests.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -I $bisect_test -B "build" -c -t -X /dev/null 2>&1 | grep '_js.log $' | sed 's|log: \([^ ]*\) |\1|'`
if [[ -z "$bisect_log" ]]; then
@ -375,7 +383,9 @@ EOF
fi
echo "checking that the test passes in the good revision $localgood:$bisect_good"
eval $TEST_DIR/bin/builder.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -B "clobber" > /dev/null
if [[ -z "$bisect_depends" ]]; then
eval $TEST_DIR/bin/builder.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -B "clobber" > /dev/null
fi
hg -R $REPO update -C -r $bisect_good
bisect_log=`eval $TEST_JSDIR/runtests.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -I $bisect_test -B "build" -c -t -X /dev/null 2>&1 | grep '_js.log $' | sed 's|log: \([^ ]*\) |\1|'`
if [[ -z "$bisect_log" ]]; then
@ -402,7 +412,13 @@ EOF
unset result
# clobber before setting new changeset.
eval $TEST_DIR/bin/builder.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -B "clobber" > /dev/null
if [[ -z "$bisect_depends" ]]; then
eval $TEST_DIR/bin/builder.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -B "clobber" > /dev/null
fi
# remove extraneous in-tree changes
# nsprpub/configure I'm looking at you!
hg -R $REPO update -C
hg -R $REPO bisect
bisect_log=`eval $TEST_JSDIR/runtests.sh -p $bisect_product -b $bisect_branch $bisect_extraflag -T $bisect_buildtype -I $bisect_test -B "build" -c -t -X /dev/null 2>&1 | grep '_js.log $' | sed 's|log: \([^ ]*\) |\1|'`

Просмотреть файл

@ -568,18 +568,27 @@ function gczeal(z)
javascriptoptions.setIntPref('gczeal', Number(z));
}
var gJit = { content: undefined, chrome: undefined };
function jit(on)
{
var javascriptoptions = new Preferences('javascript.options.jit.');
var jitoptions = new Preferences('javascript.options.jit.');
if (typeof gJit.content == 'undefined')
{
gJit.content = jitoptions.getBoolPref('content');
gJit.chrome = jitoptions.getBoolPref('chrome');
}
if (on)
{
javascriptoptions.setBoolPref('content', true);
javascriptoptions.setBoolPref('chrome', true);
jitoptions.setBoolPref('content', true);
jitoptions.setBoolPref('chrome', false);
}
else
{
javascriptoptions.setBoolPref('content', false);
javascriptoptions.setBoolPref('chrome', false);
jitoptions.setBoolPref('content', false);
jitoptions.setBoolPref('chrome', false);
}
}
@ -625,18 +634,54 @@ function jsTestDriverBrowserInit()
gczeal(zeal);
}
/*
* since the default setting of jit changed from false to true
* in http://hg.mozilla.org/tracemonkey/rev/685e00e68be9
* bisections which depend upon jit settings can be thrown off.
* default jit(false) to make bisections depending upon jit settings
* consistent over time. This is not needed in shell tests as the default
* jit setting has not changed there.
*/
var jitmatches = /;jit/.exec(document.location.search);
if (jitmatches)
{
jit(true);
}
var versionmatches = /version=([.0-9]*)/.exec(value);
if (!versionmatches)
else
{
value = 'text/javascript;version=';
jit(false);
}
var versionmatches;
if (attribute == 'type')
{
versionmatches = /version=([.0-9]+)/.exec(value);
}
else
{
versionmatches = /javascript([.0-9]+)/.exec(value);
}
if (versionmatches)
{
gVersion = 10*parseInt(versionmatches[1].replace(/\./g, ''));
}
else if (navigator.userAgent.indexOf('Gecko/') != -1)
{
// If the version is not specified, and the browser is Gecko,
// adjust the version to match the suite version.
if (attribute == 'type')
{
value = 'text/javascript;version=';
}
else
{
value = 'javascript';
}
if (testpath.match(/^js1_6/))
{
gVersion = 160;
@ -663,10 +708,6 @@ function jsTestDriverBrowserInit()
value += '1.5';
}
}
else
{
gVersion = 10*parseInt(versionmatches[1].replace(/\./g, ''));
}
var testpathparts = testpath.split(/\//);
@ -750,6 +791,18 @@ function jsTestDriverEnd()
{
var javascriptoptions = new Preferences('javascript.options.');
javascriptoptions.clearPref('gczeal');
var jitoptions = new Preferences('javascript.options.jit.');
if (typeof gJit.content != 'undefined')
{
jitoptions.setBoolPref('content', gJit.content);
}
if (typeof gJit.chrome != 'undefined')
{
jitoptions.setBoolPref('chrome', gJit.chrome);
}
optionsReset();
}
catch(ex)

Просмотреть файл

@ -51,7 +51,7 @@ if (typeof document != 'undefined' && 'addEventListener' in document)
document.addEventListener('load',
(function () {
var iframe = document.createElement('iframe');
document.body.appendChild('iframe');
document.body.appendChild(iframe);
iframe.contentDocument.location.href='javascript:<x/>.@*++;';
}), true);
}

Просмотреть файл

@ -0,0 +1,54 @@
/* -*- Mode: java; tab-width:8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Chris Evans
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
gTestfile = 'regress-453915.js';
var summary = 'XML Injection possible via default xml namespace';
var BUGNUMBER = 453915;
var actual = '';
var expect = '';
printBugNumber(BUGNUMBER);
START(summary);
default xml namespace = '\'';
<foo/>
TEST(1, expect, actual);
END();

Просмотреть файл

@ -665,12 +665,6 @@ new TestCase( SECTION,
Infinity,
-"-Infinity" );
new TestCase( SECTION,
"-\"-infinity\"",
NaN,
-"-infinity" );
new TestCase( SECTION,
"-\"+Infinity\"",
-Infinity,

Просмотреть файл

@ -187,24 +187,24 @@ function test()
//
expect = 31;
actual = (new Date(Date.UTC(2006, 0, -Infinity)).getUTCDate());
expect = true;
actual = isNaN(new Date(Date.UTC(2006, 0, -Infinity)).getUTCDate());
reportCompare(expect, actual, summary + ': date -Infinity');
expect = 0;
actual = (new Date(Date.UTC(2006, 0, 0, -Infinity)).getUTCHours());
expect = true;
actual = isNaN(new Date(Date.UTC(2006, 0, 0, -Infinity)).getUTCHours());
reportCompare(expect, actual, summary + ': hours -Infinity');
expect = 0;
actual = (new Date(Date.UTC(2006, 0, 0, 0, -Infinity)).getUTCMinutes());
expect = true;
actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, -Infinity)).getUTCMinutes());
reportCompare(expect, actual, summary + ': minutes -Infinity');
expect = 0;
actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, -Infinity)).getUTCSeconds());
expect = true;
actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, -Infinity)).getUTCSeconds());
reportCompare(expect, actual, summary + ': seconds -Infinity');
expect = 0;
actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, -Infinity)).getUTCMilliseconds());
expect = true;
actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, -Infinity)).getUTCMilliseconds());
reportCompare(expect, actual, summary + ': milliseconds -Infinity');
//

Просмотреть файл

@ -0,0 +1,66 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Joachim Kuebart
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-452786.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 452786;
var summary = 'Do not crash with (new Date()).getMonth.call(new Function())';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
try
{
(new Date()).getMonth.call(new Function());
}
catch(ex)
{
}
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,67 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465272.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465272;
var summary = 'subtraction';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
expect = '3,3,3,3,3,';
for (j=0;j<5;++j) print(actual += "" + ((5) - 2) + ',');
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,85 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Brendan Eich
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465347.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465347;
var summary = 'Test integer to id in js_Int32ToId';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
var o;
o = new Array();
expect = undefined;
o[0xffffffff] = 'end';
actual = o[-1];
reportCompare(expect, actual, summary + ': 1');
expect = 42;
o['42'] = 42;
actual = o[42];
reportCompare(expect, actual, summary + ': 2');
//
o = new Object();
expect = undefined;
o[0xffffffff] = 'end';
actual = o[-1];
reportCompare(expect, actual, summary + ': 3');
expect = 42;
o['42'] = 42;
actual = o[42];
reportCompare(expect, actual, summary + ': 4');
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-466262.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 466262;
var summary = 'Do not assert: f == f->root';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
var e = 1;
for (var d = 0; d < 3; ++d) {
if (d == 2) {
e = "";
}
}
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465276.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465276;
var summary = '((1 * (1))|""';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
expect = '[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]';
empty = [];
out = [];
for (var j=0;j<10;++j) { empty[42]; out.push((1 * (1)) | ""); }
print(actual = uneval(out));
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -58,12 +58,12 @@ function test()
f = function() { g(h) = (delete let (y) 3); }
actual = f + '';
expect = 'function () {\n g(h) = ((let (y) 3), true);\n}';
compareSource(expect, actual, summary);
compareSource(expect, actual, summary + ': 1');
f = function () { g(h) = ((let (y) 3), true);}
actual = f + '';
expect = 'function () {\n g(h) = ((let (y) 3), true);\n}';
compareSource(expect, actual, summary);
compareSource(expect, actual, summary + ': 2');
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,65 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465424.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465424;
var summary = 'TM: issue with post-decrement operator';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = '0,1,2,3,4,';
jit(true);
for (let j=0;j<5;++j) { jj=j; print(actual += '' + (jj--) + ',') }
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,65 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465337.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465337;
var summary = 'Do not assert: (m != JSVAL_INT) || isInt32(*vp)';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
var out = [];
for (let j = 0; j < 5; ++j) { out.push(6 - ((void 0) ^ 0x80000005)); }
print(uneval(out));
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,77 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465453.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465453;
var summary = 'Do not convert (undefined) to "undefined"';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = '[(new Boolean(true)), (void 0), (new Boolean(true)), ' +
'(new Boolean(true)), (void 0), (void 0), "", "", (void 0)]';
jit(true);
var out = [];
for each (var e in [(new Boolean(true)),
(void 0),
(new Boolean(true)),
(new Boolean(true)),
(void 0),
(void 0),
"",
"",
(void 0)])
out.push(e);
print(actual = uneval(out));
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,66 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465308.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465308;
var summary = '((0x60000009) * 0x60000009))';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = '-1073741824,-1073741824,-1073741824,-1073741824,-1073741824,';
jit(true);
for (let j=0;j<5;++j)
print(actual += "" + (0 | ((0x60000009) * 0x60000009)) + ',');
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,65 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465483.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465483;
var summary = 'Type instability leads to undefined being added as a string instead of as a number';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = 'NaN';
jit(true);
for each (i in [4, 'a', 'b', (void 0)]) print(actual = '' + (i + i));
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,63 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-465688.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 465688;
var summary = 'Do not assert: (m != JSVAL_INT) || isInt32(*vp),';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
for each (let d in [-0x80000000, -0x80000000]) - -d;
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,66 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-466128.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 466128;
var summary = 'Do not assert: !ti->stackTypeMap.matches(ti_other->stackTypeMap)';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
for (let a = 0; a < 3; ++a) {
for each (let b in [1, 2, "three", 4, 5, 6, 7, 8]) {
}
}
jit(false);
reportCompare(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -56,7 +56,7 @@ function test()
{ alert(1); for((let(y=3) let(y=4) y); 0; x++) ; alert(6); }
expect = 'function () {\n alert(1);\n' +
' for ((let (y = 3) (let (y = 4) y)); false; x++) {\n' +
' for (let (y = 3) let (y = 4) y; false; x++) {\n' +
' }\n' +
' alert(6);\n' +
'}';

Просмотреть файл

@ -0,0 +1,87 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2006
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
* Jeff Walden
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-350991.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 350991;
var summary = 'decompilation of function () { for (let...;...;}} ';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
var f;
expect = 'function () {\n for (let (y) 3;;) {\n }\n}';
try
{
f = eval('(function () { for ((let (y) 3); ;) { } })');
actual = f + '';
}
catch(ex)
{
actual = ex + '';
}
compareSource(expect, actual, summary);
expect = 'function () {\n let x = 5;\n while (x-- > 0) {\n' +
' for (let x = x, q = 5;;) {\n }\n }\n}';
try
{
f = function() { let x = 5; while (x-- > 0) { for (let x = x, q = 5;;); } }
actual = f + '';
}
catch(ex)
{
actual = ex + '';
}
compareSource(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,75 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2006
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Brendan Eich
* Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-352011.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 352011;
var summary = 'decompilation of statements that begin with object literals';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
var f;
f = function() { ({}.y = i); }
expect = 'function() { ({}.y = i); }';
actual = f + '';
compareSource(expect, actual, summary);
f = function() { let(x) ({t:x}) }
expect = 'function() { let(x) ({t:x}); }';
actual = f + '';
compareSource(expect, actual, summary);
f = function() { (let(x) {y: z}) }
expect = 'function() { let(x) ({y: z}); }';
actual = f + '';
compareSource(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2006
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-352022.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 352022;
var summary = 'decompilation of let, delete and parens';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
var f;
f = function() { g(h) = (delete let (y) 3); }
actual = f + '';
expect = 'function () {\n g(h) = (let (y) 3, true);\n}';
compareSource(expect, actual, summary + ': 1');
f = function () { g(h) = ((let (y) 3), true);}
actual = f + '';
expect = 'function () {\n g(h) = (let (y) 3, true);\n}';
compareSource(expect, actual, summary + ': 2');
exitFunc ('test');
}

Просмотреть файл

@ -61,7 +61,7 @@ function test()
compareSource(expect, actual, summary);
f = function f(){g((let(a=b)c,d),e)}
expect = 'function f(){g(((let(a=b)c),d),e);}';
expect = 'function f(){g((let(a=b)c,d),e);}';
actual = f + '';
compareSource(expect, actual, summary);
@ -71,7 +71,7 @@ function test()
compareSource(expect, actual, summary);
f = function() { (let(s=4){foo:"bar"}) }
expect = 'function() { (let(s=4)({foo:"bar"})); }';
expect = 'function() { let(s=4)({foo:"bar"}); }';
actual = f + '';
compareSource(expect, actual, summary);

Просмотреть файл

@ -0,0 +1,90 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2006
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-352609.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 352609;
var summary = 'decompilation of |let| expression for |is not a function| error';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = /TypeError: 0 is not a function/;
try
{
[let (x = 3, y = 4) x].map(0);
}
catch(ex)
{
actual = ex + '';
}
reportMatch(expect, actual, '[let (x = 3, y = 4) x].map(0)');
expect = /TypeError: (p.z = \[let \(x = 3, y = 4\) x\]|.*Array.*) is not a function/;
try
{
var p = {}; (p.z = [let (x = 3, y = 4) x])();
}
catch(ex)
{
actual = ex + '';
}
reportMatch(expect, actual, 'p = {}; (p.z = [let (x = 3, y = 4) x])()');
expect = /TypeError: (p.z = let \(x\) x|.*Undefined.*) is not a function/;
try
{
var p = {}; (p.z = let(x) x)()
}
catch(ex)
{
actual = ex + '';
}
reportMatch(expect, actual, 'p = {}; (p.z = let(x) x)()');
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1,67 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2006
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-353249.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 353249;
var summary = 'regression test for bug 353249';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
var f = (function () { let (x) <x/>.(1) < let (z) eval('3');
for (x in this) {} });
expect = 'function () { let (x) <x/>.((1)) < (let (z) eval("3")); ' +
'for (x in this) {} }';
actual = f + '';
compareSource(expect, actual, summary);
// do not crash()
f();
exitFunc ('test');
}

Просмотреть файл

@ -137,7 +137,7 @@ function test()
reportCompare(expect, actual, summary + ': Do not Assert: *pc == JSOP_CALL');
f = (function() { ([yield] for (x in [])); });
expect = 'function() { ([yield] for (x in [])); }';
expect = 'function() { ([(yield)] for (x in [])); }';
actual = f + '';
compareSource(expect, actual, summary);

Просмотреть файл

Просмотреть файл

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is JavaScript Engine testing utilities.
*
* The Initial Developer of the Original Code is
* Mozilla Foundation.
* Portions created by the Initial Developer are Copyright (C) 2007
* the Initial Developer. All Rights Reserved.
*
* Contributor(s): Jesse Ruderman
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var gTestfile = 'regress-420399.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 420399;
var summary = 'Let expression error involving undefined';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
expect = /TypeError: let \(a = undefined\) a (is undefined|has no properties)/;
try
{
(let (a=undefined) a).b = 3;
}
catch(ex)
{
actual = ex + '';
}
reportMatch(expect, actual, summary);
exitFunc ('test');
}

Просмотреть файл

@ -0,0 +1 @@
gTestsubsuite='regress';

Просмотреть файл

@ -90,6 +90,7 @@ function jitstatHandler(f)
f("treesTrashed");
f("slotPromoted");
f("unstableLoopVariable");
f("noCompatInnerTrees");
f("breakLoopExits");
f("returnLoopExits");
}
@ -1623,9 +1624,9 @@ function testNestedExitStackOuter() {
}
testNestedExitStackOuter.expected = 81;
testNestedExitStackOuter.jitstats = {
recorderStarted: 3,
recorderAborted: 0,
traceTriggered: 7
recorderStarted: 5,
recorderAborted: 2,
traceTriggered: 9
};
test(testNestedExitStackOuter);
@ -1854,13 +1855,154 @@ function testDestructuring() {
testDestructuring.expected = (HOTLOOP + 1) * 3;
test(testDestructuring);
/* Keep this test last, since it screws up all for...in loops after it */
function testGlobalProtoAccess() {
return "ok";
function loopWithUndefined1(t, val) {
var a = new Array(6);
for (var i = 0; i < 6; i++)
a[i] = (t > val);
return a;
}
this.__proto__.a = 3; for (var j = 0; j < 4; ++j) { [a]; }
testGlobalProtoAccess.expected = "ok";
test(testGlobalProtoAccess);
loopWithUndefined1(5.0, 2); //compile version with val=int
function testLoopWithUndefined1() {
return loopWithUndefined1(5.0).join(","); //val=undefined
};
testLoopWithUndefined1.expected = "false,false,false,false,false,false";
test(testLoopWithUndefined1);
function loopWithUndefined2(t, dostuff, val) {
var a = new Array(6);
for (var i = 0; i < 6; i++) {
if (dostuff) {
val = 1;
a[i] = (t > val);
} else {
a[i] = (val == undefined);
}
}
return a;
}
function testLoopWithUndefined2() {
var a = loopWithUndefined2(5.0, true, 2);
var b = loopWithUndefined2(5.0, true);
var c = loopWithUndefined2(5.0, false, 8);
var d = loopWithUndefined2(5.0, false);
return [a[0], b[0], c[0], d[0]].join(",");
}
testLoopWithUndefined2.expected = "true,true,false,true";
test(testLoopWithUndefined2);
//test no multitrees assert
function testBug462388() {
var c = 0, v; for each (let x in ["",v,v,v]) { for (c=0;c<4;++c) { } }
return true;
}
testBug462388.expected = true;
test(testBug462388);
//test no multitrees assert
function testBug462407() {
for each (let i in [0, {}, 0, 1.5, {}, 0, 1.5, 0, 0]) { }
return true;
}
testBug462407.expected = true;
test(testBug462407);
//test no multitrees assert
function testBug463490() {
function f(a, b, d) {
for (var i = 0; i < 10; i++) {
if (d)
b /= 2;
}
return a + b;
}
//integer stable loop
f(2, 2, false);
//double stable loop
f(3, 4.5, false);
//integer unstable branch
f(2, 2, true);
return true;
};
testBug463490.expected = true;
test(testBug463490);
// Test no assert (bug 464089)
function shortRecursiveLoop(b, c) {
for (var i = 0; i < c; i++) {
if (b)
shortRecursiveLoop(c - 1);
}
}
function testClosingRecursion() {
shortRecursiveLoop(false, 1);
shortRecursiveLoop(true, 3);
return true;
}
testClosingRecursion.expected = true;
test(testClosingRecursion);
// Test no assert or crash from outer recorders (bug 465145)
function testBug465145() {
this.__defineSetter__("x", function(){});
this.watch("x", function(){});
y = this;
for (var z = 0; z < 2; ++z) { x = y };
this.__defineSetter__("x", function(){});
for (var z = 0; z < 2; ++z) { x = y };
}
function testTrueShiftTrue() {
var a = new Array(5);
for (var i=0;i<5;++i) a[i] = "" + (true << true);
return a.join(",");
}
testTrueShiftTrue.expected = "2,2,2,2,2";
test(testTrueShiftTrue);
// Test no assert or crash
function testBug465261() {
for (let z = 0; z < 2; ++z) { for each (let x in [0, true, (void 0), 0, (void
0)]) { if(x){} } };
return true;
}
testBug465261.expected = true;
test(testBug465261);
function testBug465272() {
var a = new Array(5);
for (j=0;j<5;++j) a[j] = "" + ((5) - 2);
return a.join(",");
}
testBug465272.expected = "3,3,3,3,3"
test(testBug465272);
function testBug465483() {
var a = new Array(4);
var c = 0;
for each (i in [4, 'a', 'b', (void 0)]) a[c++] = '' + (i + i);
return a.join(',');
}
testBug465483.expected = '8,aa,bb,NaN';
test(testBug465483);
function testNullCallee() {
try {
function f() {
var x = new Array(5);
for (var i = 0; i < 5; i++)
x[i] = a[i].toString();
return x.join(',');
}
f([[1],[2],[3],[4],[5]]);
f([null, null, null, null, null]);
} catch (e) {
return true;
}
return false;
}
testNullCallee.expected = true;
test(testNullCallee);
function testNewDate()
{
@ -1994,7 +2136,12 @@ test(testSubstring);
function testForInLoopChangeIteratorType() {
for(y in [0,1,2]) y = NaN;
(function(){ [].__proto__.u = void 0; for (let y in [5,6,7,8]) y = NaN; })()
(function(){
[].__proto__.u = void 0;
for (let y in [5,6,7,8])
y = NaN;
delete [].__proto__.u;
})()
return "ok";
}
testForInLoopChangeIteratorType.expected = "ok";
@ -2025,6 +2172,313 @@ function testCallProtoMethod() {
testCallProtoMethod.expected = 'XXXXY';
test(testCallProtoMethod);
function testTypeUnstableForIn() {
var a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
var x = 0;
for (var i in a) {
i = parseInt(i);
x++;
}
return x;
}
testTypeUnstableForIn.expected = 16;
test(testTypeUnstableForIn);
function testAddUndefined() {
for (var j = 0; j < 3; ++j)
(0 + void 0) && 0;
}
test(testAddUndefined);
function testStringify() {
var t = true, f = false, u = undefined, n = 5, d = 5.5, s = "x";
var a = [];
for (var i = 0; i < 10; ++i) {
a[0] = "" + t;
a[1] = t + "";
a[2] = "" + f;
a[3] = f + "";
a[4] = "" + u;
a[5] = u + "";
a[6] = "" + n;
a[7] = n + "";
a[8] = "" + d;
a[9] = d + "";
a[10] = "" + s;
a[11] = s + "";
}
return a.join(",");
}
testStringify.expected = "true,true,false,false,undefined,undefined,5,5,5.5,5.5,x,x";
test(testStringify);
function testObjectToString() {
var o = {toString: function()"foo"};
var s = "";
for (var i = 0; i < 10; i++)
s += o;
return s;
}
testObjectToString.expected = "foofoofoofoofoofoofoofoofoofoo";
test(testObjectToString);
function testObjectToNumber() {
var o = {valueOf: function()-3};
var x = 0;
for (var i = 0; i < 10; i++)
x -= o;
return x;
}
testObjectToNumber.expected = 30;
test(testObjectToNumber);
function my_iterator_next() {
if (this.i == 10) {
this.i = 0;
throw this.StopIteration;
}
return this.i++;
}
function testCustomIterator() {
var o = {
__iterator__: function () {
return {
i: 0,
next: my_iterator_next,
StopIteration: StopIteration
};
}
};
var a=[];
for (var k = 0; k < 100; k += 10) {
for(var j in o) {
a[k + (j >> 0)] = j*k;
}
}
return a.join();
}
testCustomIterator.expected = "0,0,0,0,0,0,0,0,0,0,0,10,20,30,40,50,60,70,80,90,0,20,40,60,80,100,120,140,160,180,0,30,60,90,120,150,180,210,240,270,0,40,80,120,160,200,240,280,320,360,0,50,100,150,200,250,300,350,400,450,0,60,120,180,240,300,360,420,480,540,0,70,140,210,280,350,420,490,560,630,0,80,160,240,320,400,480,560,640,720,0,90,180,270,360,450,540,630,720,810";
test(testCustomIterator);
function bug464403() {
print(8);
var u = [print, print, function(){}]
for each (x in u) for (u.e in [1,1,1,1]);
return "ok";
}
bug464403.expected = "ok";
test(bug464403);
function testBoxDoubleWithDoubleSizedInt()
{
var i = 0;
var a = new Array(3);
while (i < a.length)
a[i++] = 0x5a827999;
return a.join(",");
}
testBoxDoubleWithDoubleSizedInt.expected = "1518500249,1518500249,1518500249";
test(testBoxDoubleWithDoubleSizedInt);
function testObjectOrderedCmp()
{
var a = new Array(5);
for(var i=0;i<5;++i) a[i] = ({} < {});
return a.join(",");
}
testObjectOrderedCmp.expected = "false,false,false,false,false";
test(testObjectOrderedCmp);
function testObjectOrderedCmp2()
{
var a = new Array(5);
for(var i=0;i<5;++i) a[i] = ("" <= null);
return a.join(",");
}
testObjectOrderedCmp2.expected = "true,true,true,true,true";
test(testObjectOrderedCmp2);
function testLogicalNotNaN() {
var i = 0;
var a = new Array(5);
while (i < a.length)
a[i++] = !NaN;
return a.join();
}
testLogicalNotNaN.expected = "true,true,true,true,true";
test(testLogicalNotNaN);
function testStringToInt32() {
var s = "";
for (let j = 0; j < 5; ++j) s += ("1e+81" ^ 3);
return s;
}
testStringToInt32.expected = "33333";
test(testStringToInt32);
function testIn() {
var array = [3];
var obj = { "-1": 5, "1.7": 3, "foo": 5, "1": 7 };
var a = [];
for (let j = 0; j < 5; ++j) {
a.push("0" in array);
a.push(-1 in obj);
a.push(1.7 in obj);
a.push("foo" in obj);
a.push(1 in obj);
a.push("1" in array);
a.push(-2 in obj);
a.push(2.7 in obj);
a.push("bar" in obj);
a.push(2 in obj);
}
return a.join(",");
}
testIn.expected = "true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false";
test(testIn);
function testBranchCse() {
empty = [];
out = [];
for (var j=0;j<10;++j) { empty[42]; out.push((1 * (1)) | ""); }
return out.join(",");
}
testBranchCse.expected = "1,1,1,1,1,1,1,1,1,1";
test(testBranchCse);
function testMulOverflow() {
var a = [];
for (let j=0;j<5;++j) a.push(0 | ((0x60000009) * 0x60000009));
return a.join(",");
}
testMulOverflow.expected = "-1073741824,-1073741824,-1073741824,-1073741824,-1073741824";
test(testMulOverflow);
function testThinLoopDemote() {
function f()
{
var k = 1;
for (var n = 0; n < 2; n++) {
k = (k * 10);
}
return k;
}
f();
return f();
}
testThinLoopDemote.expected = 100;
testThinLoopDemote.jitstats = {
recorderStarted: 3,
recorderAborted: 0,
traceCompleted: 1,
traceTriggered: 0,
unstableLoopVariable: 2
};
test(testThinLoopDemote);
var global = this;
function testWeirdDateParseOuter()
{
var vDateParts = ["11", "17", "2008"];
var out = [];
for (var vI = 0; vI < vDateParts.length; vI++) {
out.push(testWeirdDateParseInner(vDateParts[vI]));
}
/* Mutate the global shape so we fall off trace; this causes
* additional oddity */
global.x = Math.random();
return out;
}
function testWeirdDateParseInner(pVal)
{
var vR = 0;
for (var vI = 0; vI < pVal.length; vI++) {
var vC = pVal.charAt(vI);
if ((vC >= '0') && (vC <= '9'))
vR = (vR * 10) + parseInt(vC);
}
return vR;
}
function testWeirdDateParse() {
var result = [];
result.push(testWeirdDateParseInner("11"));
result.push(testWeirdDateParseInner("17"));
result.push(testWeirdDateParseInner("2008"));
result.push(testWeirdDateParseInner("11"));
result.push(testWeirdDateParseInner("17"));
result.push(testWeirdDateParseInner("2008"));
result = result.concat(testWeirdDateParseOuter());
result = result.concat(testWeirdDateParseOuter());
result.push(testWeirdDateParseInner("11"));
result.push(testWeirdDateParseInner("17"));
result.push(testWeirdDateParseInner("2008"));
return result.join(",");
}
testWeirdDateParse.expected = "11,17,2008,11,17,2008,11,17,2008,11,17,2008,11,17,2008";
testWeirdDateParse.jitstats = {
recorderStarted: 10,
recorderAborted: 1,
traceCompleted: 5,
traceTriggered: 13,
unstableLoopVariable: 6,
noCompatInnerTrees: 1
};
test(testWeirdDateParse);
function testUndemotableBinaryOp() {
var out = [];
for (let j = 0; j < 5; ++j) { out.push(6 - ((void 0) ^ 0x80000005)); }
return out.join(",");
}
testUndemotableBinaryOp.expected = "2147483649,2147483649,2147483649,2147483649,2147483649";
test(testUndemotableBinaryOp);
function testNullRelCmp() {
var out = [];
for(j=0;j<3;++j) { out.push(3 > null); out.push(3 < null); out.push(0 == null); out.push(3 == null); }
return out.join(",");
}
testNullRelCmp.expected = "true,false,false,false,true,false,false,false,true,false,false,false";
test(testNullRelCmp);
function testEqFalseEmptyString() {
var x = [];
for (var i=0;i<5;++i) x.push(false == "");
return x.join(",");
}
testEqFalseEmptyString.expected = "true,true,true,true,true";
test(testEqFalseEmptyString);
function testIncDec2(ii) {
var x = [];
for (let j=0;j<5;++j) {
ii=j;
jj=j;
var kk=j;
x.push(ii--);
x.push(jj--);
x.push(kk--);
x.push(++ii);
x.push(++jj);
x.push(++kk);
}
return x.join(",");
}
function testIncDec() {
return testIncDec2(0);
}
testIncDec.expected = "0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4";
test(testIncDec);
/* NOTE: Keep this test last, since it screws up all for...in loops after it. */
function testGlobalProtoAccess() {
return "ok";
}
this.__proto__.a = 3; for (var j = 0; j < 4; ++j) { [a]; }
testGlobalProtoAccess.expected = "ok";
test(testGlobalProtoAccess);
jit(false);
/* Keep these at the end so that we can see the summary after the trace-debug spew. */

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -693,48 +693,30 @@ if (typeof options == 'function')
function getTestCaseResult(expected, actual)
{
var expected_t = typeof expected;
var actual_t = typeof actual;
var passed = true;
// because ( NaN == NaN ) always returns false, need to do
// a special compare to see if we got the right result.
if ( actual != actual )
{
if ( actual_t == "object" )
{
actual = "NaN object";
}
else
{
actual = "NaN number";
}
}
if ( expected != expected )
{
if ( expected_t == "object" )
{
expected = "NaN object";
}
else
{
expected = "NaN number";
}
}
if (typeof expected != typeof actual)
return false;
if (typeof expected != 'number')
// Note that many tests depend on the use of '==' here, not '==='.
return actual == expected;
if (expected_t != actual_t)
{
passed = false;
}
else if (expected != actual)
{
if (expected_t != 'number' || (Math.abs(actual - expected) > 1E-10))
{
passed = false;
}
}
return passed;
// Distinguish NaN from other values. Using x != x comparisons here
// works even if tests redefine isNaN.
if (actual != actual)
return expected != expected;
if (expected != expected)
return false;
// Tolerate a certain degree of error.
if (actual != expected)
return Math.abs(actual - expected) <= 1E-10;
// Here would be a good place to distinguish 0 and -0, if we wanted
// to. However, doing so would introduce a number of failures in
// areas where they don't seem important. For example, the WeekDay
// function in ECMA-262 returns -0 for Sundays before the epoch, but
// the Date functions in SpiderMonkey specified in terms of WeekDay
// often don't. This seems unimportant.
return true;
}
if (typeof dump == 'undefined')

Просмотреть файл

@ -0,0 +1,28 @@
e4x/GC/regress-324278.js
e4x/Regress/regress-319872.js
ecma_3/Array/regress-322135-02.js
ecma_3/Array/regress-322135-03.js
ecma_3/Array/regress-322135-04.js
ecma_3/RegExp/regress-307456.js
ecma_3/RegExp/regress-330684.js
ecma_3/RegExp/regress-367888.js
js1_5/Array/regress-330812.js
js1_5/Array/regress-350256-03.js
js1_5/extensions/regress-330569.js
js1_5/extensions/regress-342960.js
js1_5/extensions/regress-345967.js
js1_5/extensions/regress-350531.js
js1_5/extensions/regress-351448.js
js1_5/Function/regress-338121-01.js
js1_5/Function/regress-338121-02.js
js1_5/GC/regress-311497.js
js1_5/GC/regress-346794.js
js1_5/Regress/regress-271716-n.js
js1_5/Regress/regress-274035.js
js1_5/Regress/regress-312588.js
js1_5/Regress/regress-314401.js
js1_5/Regress/regress-329530.js
js1_6/extensions/regress-455464-04.js
js1_6/extensions/regress-456826.js
js1_7/iterable/regress-341815.js
js1_7/iterable/regress-341821.js

Просмотреть файл

@ -0,0 +1,11 @@
e4x/Regress/regress-319872.js
ecma_3/Array/regress-322135-03.js
ecma_3/Array/regress-322135-04.js
ecma_3/RegExp/regress-307456.js
ecma_3/RegExp/regress-330684.js
js1_5/Array/regress-350256-03.js
js1_5/extensions/regress-345967.js
js1_5/extensions/regress-350531.js
js1_5/GC/regress-346794.js
js1_5/Regress/regress-271716-n.js
js1_6/extensions/regress-455464-04.js

Просмотреть файл

@ -0,0 +1,12 @@
ecma_3/Array/regress-322135-03.js
ecma_3/Array/regress-322135-04.js
ecma_3/RegExp/regress-307456.js
ecma_3/RegExp/regress-330684.js
js1_5/Array/regress-350256-03.js
js1_5/extensions/regress-345967.js
js1_5/extensions/regress-350531.js
js1_5/GC/regress-338653.js
js1_5/GC/regress-346794.js
js1_5/Regress/regress-271716-n.js
js1_6/extensions/regress-456826.js
js1_7/extensions/regress-458679.js

Просмотреть файл

@ -10,13 +10,6 @@ ecma_3/RegExp/regress-307456.js
ecma_3/RegExp/regress-330684.js
js1_5/Array/regress-330812.js
js1_5/Array/regress-350256-03.js
js1_5/Function/regress-338121-01.js
js1_5/Function/regress-338121-02.js
js1_5/GC/regress-319980-01.js
js1_5/GC/regress-338653.js
js1_5/GC/regress-346794.js
js1_5/Regress/regress-271716-n.js
js1_5/Regress/regress-312588.js
js1_5/extensions/regress-335700.js
js1_5/extensions/regress-336409-1.js
js1_5/extensions/regress-336409-2.js
@ -25,5 +18,13 @@ js1_5/extensions/regress-336410-2.js
js1_5/extensions/regress-342960.js
js1_5/extensions/regress-345967.js
js1_5/extensions/regress-350531.js
js1_5/Function/regress-338121-01.js
js1_5/Function/regress-338121-02.js
js1_5/GC/regress-319980-01.js
js1_5/GC/regress-338653.js
js1_5/GC/regress-346794.js
js1_5/Regress/regress-271716-n.js
js1_5/Regress/regress-312588.js
js1_6/extensions/regress-456826.js
js1_7/iterable/regress-341815.js
js1_7/iterable/regress-341821.js

Просмотреть файл

@ -134,3 +134,10 @@ js1_7/decompilation/regress-352026.js
# https://bugzilla.mozilla.org/show_bug.cgi?id=458851#c7
js1_5/extensions/regress-437288-01.js
js1_5/decompilation/regress-437288-02.js
# more decompilation changes, bug 461233
js1_7/block/regress-352609.js
js1_7/decompilation/regress-352011.js
js1_7/decompilation/regress-352022.js
js1_7/extensions/regress-353249.js
js1_7/regress/regress-420399.js
js1_7/decompilation/regress-350991.js

Просмотреть файл

@ -42,6 +42,18 @@ TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=4, TEST
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=3, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
@ -78,6 +90,24 @@ TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TE
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=4, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=3, TEST_CPUSPEED=slow, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=linux, TEST_KERNEL=2.6.18, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=4, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
@ -134,14 +164,6 @@ TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSP
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=amd32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
@ -150,7 +172,26 @@ TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPU
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=fast, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.8.1, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.0, TEST_REPO=CVS, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=5.1, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=mozilla-central, TEST_BUILDTYPE=opt, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=debug, TEST_TYPE=shell
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=browser
TEST_OS=nt, TEST_KERNEL=6.0, TEST_PROCESSORTYPE=intel32, TEST_MEMORY=2, TEST_CPUSPEED=medium, TEST_TIMEZONE=-0800, TEST_BRANCH=1.9.1, TEST_REPO=tracemonkey, TEST_BUILDTYPE=opt, TEST_TYPE=shell

Просмотреть файл

@ -109,25 +109,7 @@ case $product in
;;
js)
if [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
# use the old-style Makefile.ref build environment for spidermonkey
if [[ $buildtype == "debug" ]]; then
export JSBUILDOPT=
else
export JSBUILDOPT=BUILD_OPT=1
fi
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref ${JSBUILDOPT} clean" 2>&1; then
error "during js/src clean" $LINENO
fi
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref ${JSBUILDOPT}" 2>&1; then
error "during js/src build" $LINENO
fi
else
if [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
# use the new fangled autoconf build environment for spidermonkey
@ -186,6 +168,28 @@ case $product in
error "during js/src install" $LINENO
fi
elif [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
# use the old-style Makefile.ref build environment for spidermonkey
if [[ $buildtype == "debug" ]]; then
export JSBUILDOPT=
else
export JSBUILDOPT=BUILD_OPT=1
fi
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref ${JSBUILDOPT} clean" 2>&1; then
error "during js/src clean" $LINENO
fi
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref ${JSBUILDOPT}" 2>&1; then
error "during js/src build" $LINENO
fi
else
error "Neither Makefile.ref or autoconf builds available"
fi
;;
esac

Просмотреть файл

@ -42,7 +42,6 @@ source $TEST_DIR/bin/set-build-env.sh $@
case $product in
firefox|thunderbird|fennec)
# cd $BUILDTREE/mozilla
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla; make -f client.mk clean" 2>&1; then
error "during client.mk clean" $LINENO
@ -50,14 +49,49 @@ case $product in
;;
js)
# cd $BUILDTREE/mozilla/js/src/editline
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src/editline; make -f Makefile.ref clean" 2>&1; then
error "during editline clean" $LINENO
fi
if [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
# use the new fangled autoconf build environment for spidermonkey
# cd ..
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref clean" 2>&1; then
error "during SpiderMonkey clean" $LINENO
# recreate the OBJ directories to match the old naming standards
TEST_JSDIR=${TEST_JSDIR:-$TEST_DIR/tests/mozilla.org/js}
source $TEST_JSDIR/config.sh
mkdir -p "$BUILDTREE/mozilla/js/src/$JS_OBJDIR"
if [[ ! -e "$BUILDTREE/mozilla/js/src/configure" ]]; then
if findprogram autoconf-2.13; then
AUTOCONF=autoconf-2.13
elif findprogram autoconf213; then
AUTOCONF=autoconf213
else
error "autoconf 2.13 not detected"
fi
cd "$BUILDTREE/mozilla/js/src"
eval "$AUTOCONF"
fi
cd "$BUILDTREE/mozilla/js/src/$JS_OBJDIR"
if [[ -e "Makefile" ]]; then
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src/$JS_OBJDIR; make clean" 2>&1; then
error "during js/src clean" $LINENO
fi
fi
elif [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src/editline; make -f Makefile.ref clean" 2>&1; then
error "during editline clean" $LINENO
fi
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src; make -f Makefile.ref clean" 2>&1; then
error "during SpiderMonkey clean" $LINENO
fi
else
error "Neither Makefile.ref or autoconf builds available"
fi
;;
esac

Просмотреть файл

@ -52,7 +52,13 @@ case $product in
js)
if [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
if [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
rm -f $BUILDTREE/mozilla/js/src/configure
rm -fR $BUILDTREE/mozilla/js/src/*_*.OBJ
elif [[ -e "$BUILDTREE/mozilla/js/src/Makefile.ref" ]]; then
if ! $buildbash $bashlogin -c "cd $BUILDTREE/mozilla/js/src/editline; make -f Makefile.ref clobber" 2>&1; then
error "during editline clobber" $LINENO
fi
@ -62,8 +68,11 @@ case $product in
echo "Forcing clobber" $LINENO
rm -fR $BUILDTREE/mozilla/js/src/*_*.OBJ
fi
else
rm -fR $BUILDTREE/mozilla/js/src/*_*.OBJ
error "Neither Makefile.ref or autoconf builds available"
fi
;;
esac

Просмотреть файл

@ -121,11 +121,16 @@ fi
echo "creating profile $profilename in directory $directory"
if ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" \
tries=1
while ! $TEST_DIR/bin/timed_run.py ${TEST_STARTUP_TIMEOUT} "-" \
$EXECUTABLE_DRIVER \
$executable -CreateProfile "$profilename $directoryospath"; then
error "creating profile $directory" $LINENO
fi
$executable -CreateProfile "$profilename $directoryospath"; do
let tries=tries+1
if [ "$tries" -gt $TEST_STARTUP_TRIES ]; then
error "Failed to create profile $directory Exiting..." $LINENO
fi
sleep 30
done
if [[ -n $profiletemplate ]]; then
if [[ ! -d $profiletemplate ]]; then