зеркало из https://github.com/mozilla/gecko-dev.git
Merge to mozilla central for a whole lot of JavaScript tests.
This commit is contained in:
Коммит
ecfd0eb7d2
|
@ -100,6 +100,11 @@ usage: bisect.sh -p product -b branch -e extra\\
|
|||
(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"
|
||||
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"
|
||||
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.
|
||||
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);
|
||||
}
|
||||
else
|
||||
{
|
||||
jit(false);
|
||||
}
|
||||
|
||||
var versionmatches = /version=([.0-9]*)/.exec(value);
|
||||
var versionmatches;
|
||||
|
||||
if (!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;
|
||||
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;
|
||||
|
||||
// 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";
|
||||
}
|
||||
}
|
||||
// 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;
|
||||
|
||||
if (expected_t != actual_t)
|
||||
{
|
||||
passed = false;
|
||||
}
|
||||
else if (expected != actual)
|
||||
{
|
||||
if (expected_t != 'number' || (Math.abs(actual - expected) > 1E-10))
|
||||
{
|
||||
passed = false;
|
||||
}
|
||||
}
|
||||
// Tolerate a certain degree of error.
|
||||
if (actual != expected)
|
||||
return Math.abs(actual - expected) <= 1E-10;
|
||||
|
||||
return passed;
|
||||
// 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 [[ -e "$BUILDTREE/mozilla/js/src/configure.in" ]]; then
|
||||
# use the new fangled autoconf build environment for spidermonkey
|
||||
|
||||
# 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
|
||||
|
||||
# cd ..
|
||||
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
|
||||
|
|
Загрузка…
Ссылка в новой задаче