зеркало из https://github.com/mozilla/gecko-dev.git
bug 458838 - JavaScript Test by Boris Zbarsky.
This commit is contained in:
Родитель
8e418d82f7
Коммит
a148855b1e
|
@ -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'
|
||||
|
|
Загрузка…
Ссылка в новой задаче