| Index: test.js
|
| diff --git a/test/mjsunit/lea-add.js b/test.js
|
| similarity index 60%
|
| copy from test/mjsunit/lea-add.js
|
| copy to test.js
|
| index 28a14947067b3be683eb19d7d3a39beeda60774f..2ffb41201ac3960e474401194a52c6d5fd85dae4 100644
|
| --- a/test/mjsunit/lea-add.js
|
| +++ b/test.js
|
| @@ -25,60 +25,85 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -// Flags: --allow-natives-syntax
|
|
|
| -function a() {
|
| - var sum = 0;
|
| - for (var i = 0; i < 500; ++i) {
|
| - sum = (i + sum) | 0;
|
| +load('benchmarks/base.js');
|
| +
|
| +
|
| +function createArray() {
|
| + var array = [];
|
| + for (var i = 0; i < 100; i++) {
|
| + array[i] = i;
|
| }
|
| - return sum;
|
| + return array;
|
| }
|
|
|
| -function b() {
|
| - var sum = 0;
|
| - for (var i = -500; i < 0; ++i) {
|
| - sum = (i + sum) | 0;
|
| +
|
| +function createArrayWithHoles() {
|
| + var array = [];
|
| + for (var i = 0; i < 100; i += 2) {
|
| + array[i] = i;
|
| }
|
| - return sum;
|
| + return array;
|
| }
|
|
|
| -function c() {
|
| - var sum = 0;
|
| - for (var i = 0; i < 500; ++i) {
|
| - sum += (i + -0x7fffffff) | 0;
|
| - }
|
| - return sum;
|
| +
|
| +var array = createArray();
|
| +var arrayWithHoles = createArrayWithHoles();
|
| +
|
| +
|
| +function f(value, index) {
|
| + if (value !== index)
|
| + throw new Error();
|
| }
|
|
|
| -function d() {
|
| - var sum = 0;
|
| - for (var i = -501; i < 0; ++i) {
|
| - sum += (i + 501) | 0;
|
| - }
|
| - return sum;
|
| +
|
| +function ForEach() {
|
| + array.forEach(f);
|
| +}
|
| +
|
| +
|
| +function ForEach2() {
|
| + array.forEach2(f);
|
| +}
|
| +
|
| +
|
| +function ForEach3() {
|
| + array.forEach3(f);
|
| +}
|
| +
|
| +
|
| +function ForEachWithHoles() {
|
| + arrayWithHoles.forEach(f);
|
| +}
|
| +
|
| +
|
| +function ForEach2WithHoles() {
|
| + arrayWithHoles.forEach2(f);
|
| }
|
|
|
| -a();
|
| -a();
|
| -%OptimizeFunctionOnNextCall(a);
|
| -assertEquals(124750, a());
|
| -assertEquals(124750, a());
|
| -
|
| -b();
|
| -b();
|
| -%OptimizeFunctionOnNextCall(b);
|
| -assertEquals(-125250, b());
|
| -assertEquals(-125250, b());
|
| -
|
| -c();
|
| -c();
|
| -%OptimizeFunctionOnNextCall(c);
|
| -assertEquals(-1073741698750, c());
|
| -assertEquals(-1073741698750, c());
|
| -
|
| -d();
|
| -d();
|
| -%OptimizeFunctionOnNextCall(d);
|
| -assertEquals(125250, d());
|
| -assertEquals(125250, d());
|
| +
|
| +function ForEach3WithHoles() {
|
| + arrayWithHoles.forEach3(f);
|
| +}
|
| +
|
| +
|
| +[
|
| + ForEach,
|
| + ForEach2,
|
| + ForEach3,
|
| + ForEachWithHoles,
|
| + ForEach2WithHoles,
|
| + ForEach3WithHoles
|
| +].forEach(function(f) {
|
| + var name = f.name;
|
| + new BenchmarkSuite(name, 1e4, [
|
| + new Benchmark(name, f, f)
|
| + ]);
|
| +});
|
| +
|
| +
|
| +BenchmarkSuite.RunSuites({
|
| + NotifyResult: function(name, result) {
|
| + print(name + ': ' + result);
|
| + }
|
| +});
|
|
|