node/deps/v8/test/mjsunit/compiler/osr-regex-id.js
Ben Noordhuis 36cd5fb9d2 deps: upgrade v8 to 4.2.77.13
This commit applies some secondary changes in order to make `make test`
pass cleanly:

* disable broken postmortem debugging in common.gypi

* drop obsolete strict mode test in parallel/test-repl

* drop obsolete test parallel/test-v8-features

PR-URL: https://github.com/iojs/io.js/pull/1232
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-04-28 14:38:16 -07:00

55 lines
976 B
JavaScript

// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --use-osr --turbo-osr
function id(f) { return f; }
function foo(a) {
var r = /\0/;
for (var i = 0; i < 10; i++) {
if (a) %OptimizeOsr();
}
return r;
}
function bar(a) {
for (var i = 0; i < 10; i++) {
if (a) %OptimizeOsr();
var r = /\0/;
}
return r;
}
function baz(a) {
for (var i = 0; i < 10; i++) {
if (a) %OptimizeOsr();
}
return /\0/;
}
function qux(a) {
for (var i = 0; i < 10; i++) {
if (i > 5 && a) {
%OptimizeOsr();
} else {
var r = /\0/;
}
}
return r;
}
function test(f) {
// Test the reference equality of regex's created in OSR'd function.
var x = f(false);
assertEquals(x, f(true));
assertEquals(x, f(true));
assertEquals(x, f(true));
}
test(foo);
test(bar);
test(baz);
test(qux);