Index: test/mjsunit/compiler/optimized-for-in.js |
diff --git a/test/mjsunit/compiler/optimized-for-in.js b/test/mjsunit/compiler/optimized-for-in.js |
index 8b16101ee2240ca4e7b711c3054c5d5f223c08ef..ddacfdb06b727654a8eefbca9b6082cf02dc6276 100644 |
--- a/test/mjsunit/compiler/optimized-for-in.js |
+++ b/test/mjsunit/compiler/optimized-for-in.js |
@@ -25,7 +25,7 @@ |
// (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 |
+// Flags: --optimize-for-in --allow-natives-syntax |
// Test for-in support in Crankshaft. For simplicity this tests assumes certain |
// fixed iteration order for properties and will have to be adjusted if V8 |
@@ -247,13 +247,15 @@ tryFunction("a1b2c3d4e5f6", function () { |
function osr_inner(t, limit) { |
var r = 1; |
for (var x in t) { |
- for (var i = 0; i < t[x].length; i++) { |
- r += t[x][i]; |
- if (i === limit) { |
- %OptimizeFunctionOnNextCall(osr_inner, "osr"); |
+ if (t.hasOwnProperty(x)) { |
+ for (var i = 0; i < t[x].length; i++) { |
+ r += t[x][i]; |
fschneider
2012/02/27 13:53:06
Replace \t with spaces.
|
+ if (i === limit) { |
+ %OptimizeFunctionOnNextCall(osr_inner, "osr"); |
+ } |
} |
+ r += x; |
} |
- r += x; |
} |
return r; |
} |
@@ -290,7 +292,7 @@ function test_osr() { |
arr[i] = i + 1; |
} |
arr.push(":"); // Force deopt at the end of the loop. |
- assertEquals("211:x", osr_inner({x: arr}, (arr.length / 2) | 0)); |
+ assertEquals("211:x1234567891011121314151617181920:y", osr_inner({x: arr, y: arr}, (arr.length / 2) | 0)); |
assertEquals("7x456y", osr_outer({x: [1,2,3], y: [4,5,6]}, "x")); |
assertEquals("101234567", osr_outer_and_deopt([1,2,3,4,5,6,7,8], "5")); |
} |