bug 458838 - JavaScript Test by Boris Zbarsky.

This commit is contained in:
Bob Clary 2009-01-28 08:34:12 -08:00
Родитель 8e418d82f7
Коммит a148855b1e
4 изменённых файлов: 138 добавлений и 0 удалений

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

@ -4041,6 +4041,26 @@ function testReverseArgTypes() {
testReverseArgTypes.expected = 1;
test(testReverseArgTypes);
function testBug458838() {
var a = 1;
function g() {
var b = 0
for (var i = 0; i < 10; ++i) {
b += a;
}
return b;
}
return g();
}
testBug458838.expected = 10;
testBug458838.jitstats = {
recorderStarted: 1,
recorderAborted: 0,
traceCompleted: 1
};
test(testBug458838);
/*****************************************************************************
* *
* _____ _ _ _____ ______ _____ _______ *

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

@ -0,0 +1,96 @@
/* -*- 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): Boris Zbarksy
*
* 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-458838.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 458838;
var summary = 'TM: do not fall off trace when nested function accesses var of outer function';
var actual = '';
var expect = '';
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
function test()
{
enterFunc ('test');
printBugNumber(BUGNUMBER);
printStatus (summary);
jit(true);
function f() {
var a = 1;
function g() {
var b = 0
for (var i = 0; i < 10; ++i) {
b += a;
}
return b;
}
return g();
}
expect = 10;
actual = f();
var recorderStarted;
var recorderAborted;
var traceCompleted;
if (this.tracemonkey)
{
recorderStarted = this.tracemonkey.recorderStarted;
recorderAborted = this.tracemonkey.recorderAborted;
traceCompleted = this.tracemonkey.traceCompleted;
}
jit(false);
reportCompare(expect, actual, summary + ': return value 10');
if (this.tracemonkey)
{
expect = 'recorderStarted=1, recorderAborted=0, traceCompleted=1';
actual = 'recorderStarted=' + recorderStarted + ', recorderAborted=' + recorderAborted + ', traceCompleted=' + traceCompleted;
reportCompare(expect, actual, summary + ': trace');
}
exitFunc ('test');
}

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

@ -4074,6 +4074,26 @@ function testStringResolve() {
testStringResolve.expected = 3;
test(testStringResolve);
function testBug458838() {
var a = 1;
function g() {
var b = 0
for (var i = 0; i < 10; ++i) {
b += a;
}
return b;
}
return g();
}
testBug458838.expected = 10;
testBug458838.jitstats = {
recorderStarted: 1,
recorderAborted: 0,
traceCompleted: 1
};
test(testBug458838);
/*****************************************************************************
* *
* _____ _ _ _____ ______ _____ _______ *

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

@ -811,6 +811,8 @@ TEST_ID=js1_8_1/trace/regress-451974-01.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TES
TEST_ID=js1_8_1/trace/regress-451974-01.js, TEST_BRANCH=1.9.2, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: loops with anon functions should not be slower with jit enabled reason: Expected value 'true', Actual value 'false'
TEST_ID=js1_8_1/trace/regress-451974-02.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: loops with anon functions should not be slower with jit enabled reason: Expected value 'true', Actual value 'false'
TEST_ID=js1_8_1/trace/regress-451974-02.js, TEST_BRANCH=1.9.2, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: loops with anon functions should not be slower with jit enabled reason: Expected value 'true', Actual value 'false'
TEST_ID=js1_8_1/trace/regress-458838.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=-j, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: do not fall off trace when nested function accesses var of outer function: trace reason: Expected value 'recorderStarted=1, recorderAborted=0, traceCompleted=1', Actual value 'recorderStarted=1, recorderAborted=1, traceCompleted=0'
TEST_ID=js1_8_1/trace/regress-458838.js, TEST_BRANCH=1.9.2, TEST_REPO=.*, TEST_BUILDTYPE=debug, TEST_TYPE=shell, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=.*, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=-j, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: do not fall off trace when nested function accesses var of outer function: trace reason: Expected value 'recorderStarted=1, recorderAborted=0, traceCompleted=1', Actual value 'recorderStarted=1, recorderAborted=1, traceCompleted=0'
TEST_ID=js1_8_1/trace/regress-469927.js, TEST_BRANCH=.*, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: jit should not slow down short loop with let reason: Expected value 'true', Actual value 'false'
TEST_ID=js1_8_1/trace/regress-470739.js, TEST_BRANCH=1.9.1, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: never abort on == reason: Expected value 'true', Actual value 'false'
TEST_ID=js1_8_1/trace/regress-470739.js, TEST_BRANCH=1.9.2, TEST_REPO=.*, TEST_BUILDTYPE=.*, TEST_TYPE=.*, TEST_OS=.*, TEST_KERNEL=.*, TEST_PROCESSORTYPE=intel64, TEST_MEMORY=.*, TEST_CPUSPEED=.*, TEST_TIMEZONE=.*, TEST_OPTIONS=.*, TEST_RESULT=FAILED, TEST_EXITSTATUS=NORMAL, TEST_DESCRIPTION=TM: never abort on == reason: Expected value 'true', Actual value 'false'