diff options
Diffstat (limited to 'deps/v8/test/mjsunit/optimized-map.js')
-rw-r--r-- | deps/v8/test/mjsunit/optimized-map.js | 93 |
1 files changed, 67 insertions, 26 deletions
diff --git a/deps/v8/test/mjsunit/optimized-map.js b/deps/v8/test/mjsunit/optimized-map.js index 6a3df4d7d4..1095f7baf2 100644 --- a/deps/v8/test/mjsunit/optimized-map.js +++ b/deps/v8/test/mjsunit/optimized-map.js @@ -20,9 +20,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; a.abc = 25; } return v; - } + }; + %EnsureFeedbackVectorForFunction(callback); a.map(callback); - } + }; + %PrepareFunctionForOptimization(eagerDeoptInCalled); eagerDeoptInCalled(); eagerDeoptInCalled(); %OptimizeFunctionOnNextCall(eagerDeoptInCalled); @@ -40,9 +42,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; result += v; a.length = (i == 13 && deopt) ? 25 : 27; return v; - } + }; + %EnsureFeedbackVectorForFunction(callback); a.map(callback); - } + }; + %PrepareFunctionForOptimization(eagerDeoptInCalled); eagerDeoptInCalled(); eagerDeoptInCalled(); %OptimizeFunctionOnNextCall(eagerDeoptInCalled); @@ -63,9 +67,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; a_noescape.length = 25; } return v; - } + }; + %EnsureFeedbackVectorForFunction(callback); a_noescape.map(callback); - } + }; + %PrepareFunctionForOptimization(eagerDeoptInCalled); eagerDeoptInCalled(); eagerDeoptInCalled(); %OptimizeFunctionOnNextCall(eagerDeoptInCalled); @@ -90,9 +96,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; gc(); gc(); return v; }; + %EnsureFeedbackVectorForFunction(callback); %NeverOptimizeFunction(callback); b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -113,9 +121,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return 2 * v; }; + %EnsureFeedbackVectorForFunction(callback); %NeverOptimizeFunction(callback); return b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); assertEquals([2,4,6], lazyDeopt()); assertEquals([2,4,6], lazyDeopt()); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -132,9 +142,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; %DeoptimizeNow(); } return v; - } + }; + %EnsureFeedbackVectorForFunction(callback); b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -155,9 +167,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return v; }; + %EnsureFeedbackVectorForFunction(callback); %NeverOptimizeFunction(callback); b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -179,9 +193,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; gc(); } return v; - } + }; + %EnsureFeedbackVectorForFunction(callback); c.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -203,13 +219,15 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; throw("a"); } return v; - } + }; + %EnsureFeedbackVectorForFunction(callback); try { c.map(callback); } catch (e) { caught = true; } - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -232,13 +250,15 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return v; }; + %EnsureFeedbackVectorForFunction(callback); %NeverOptimizeFunction(callback); try { c.map(callback); } catch (e) { caught = true; } - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -260,6 +280,7 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return 2 * v; }; + %EnsureFeedbackVectorForFunction(callback); %NeverOptimizeFunction(callback); var result = 0; try { @@ -269,7 +290,8 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; result = "nope"; } return result; - } + }; + %PrepareFunctionForOptimization(lazyDeopt); assertEquals([2,4,6,8], lazyDeopt(false)); assertEquals([2,4,6,8], lazyDeopt(false)); assertEquals("nope", lazyDeopt(true)); @@ -292,9 +314,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return v; }; + %EnsureFeedbackVectorForFunction(callback); var o = [1,2,3]; b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -314,10 +338,12 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return v; }; + %EnsureFeedbackVectorForFunction(callback); %NeverOptimizeFunction(callback); var o = [1,2,3]; b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -339,9 +365,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return v; }; + %EnsureFeedbackVectorForFunction(callback); var o = [1,2,3]; b.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); lazyDeopt(); lazyDeopt(); %OptimizeFunctionOnNextCall(lazyDeopt); @@ -361,8 +389,10 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } return v; }; + %EnsureFeedbackVectorForFunction(callback); a.map(callback); - } + }; + %PrepareFunctionForOptimization(lazyDeopt); assertThrows(() => lazyDeopt()); assertThrows(() => lazyDeopt()); try { @@ -393,9 +423,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; // array. return v; } - } + }; + %EnsureFeedbackVectorForFunction(callback); return c.map(callback); - } + }; + %PrepareFunctionForOptimization(to_double); to_double(); to_double(); %OptimizeFunctionOnNextCall(to_double); @@ -423,9 +455,11 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; // Later, to PACKED_ELEMENTS. return v + 'hello'; } - } + }; + %EnsureFeedbackVectorForFunction(callback); return c.map(callback); - } + }; + %PrepareFunctionForOptimization(to_fast); to_fast(); to_fast(); %OptimizeFunctionOnNextCall(to_fast); @@ -443,8 +477,10 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; function double_results() { // TurboFan recognizes the result is a double. var callback = v => v + 0.5; + %EnsureFeedbackVectorForFunction(callback); return a.map(callback); } + %PrepareFunctionForOptimization(double_results); double_results(); double_results(); %OptimizeFunctionOnNextCall(double_results); @@ -461,6 +497,7 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; var callback = v => "hello" + v.toString(); return a.map(callback); } + %PrepareFunctionForOptimization(string_results); string_results(); string_results(); %OptimizeFunctionOnNextCall(string_results); @@ -479,6 +516,7 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; return v; }); } + %PrepareFunctionForOptimization(withHoles); withHoles(); withHoles(); %OptimizeFunctionOnNextCall(withHoles); @@ -496,6 +534,7 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; return v; }); } + %PrepareFunctionForOptimization(withHoles); withHoles(); withHoles(); %OptimizeFunctionOnNextCall(withHoles); @@ -513,6 +552,7 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; } let a = [1, 2, 3]; + %PrepareFunctionForOptimization(unreliable); unreliable(a, false); unreliable(a, false); %OptimizeFunctionOnNextCall(unreliable); @@ -531,7 +571,8 @@ var c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]; return v; } a.map(callback); - } + }; + %PrepareFunctionForOptimization(species_breakage); species_breakage(); species_breakage(); %OptimizeFunctionOnNextCall(species_breakage); |