Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: src/js/runtime.js

Issue 1410473002: Reland: Use simple/fast inline function version of MinMax in JS (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: use existing export in runtime Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This files contains runtime support implemented in JavaScript. 5 // This files contains runtime support implemented in JavaScript.
6 6
7 // CAUTION: Some of the functions specified in this file are called 7 // CAUTION: Some of the functions specified in this file are called
8 // directly from compiled code. These are the functions with names in 8 // directly from compiled code. These are the functions with names in
9 // ALL CAPS. The compiled code passes the first argument in 'this'. 9 // ALL CAPS. The compiled code passes the first argument in 'this'.
10 10
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 return TO_BOOLEAN(spreadable); 213 return TO_BOOLEAN(spreadable);
214 } 214 }
215 215
216 216
217 function ToPositiveInteger(x, rangeErrorIndex) { 217 function ToPositiveInteger(x, rangeErrorIndex) {
218 var i = TO_INTEGER_MAP_MINUS_ZERO(x); 218 var i = TO_INTEGER_MAP_MINUS_ZERO(x);
219 if (i < 0) throw MakeRangeError(rangeErrorIndex); 219 if (i < 0) throw MakeRangeError(rangeErrorIndex);
220 return i; 220 return i;
221 } 221 }
222 222
223
224 function MaxSimple(a, b) {
225 return a > b ? a : b;
226 }
227
228
229 function MinSimple(a, b) {
230 return a > b ? b : a;
231 }
232
233
234 %SetForceInlineFlag(MaxSimple);
Jakob Kummerow 2015/10/15 14:18:48 Have you measured that this actually makes a diffe
skomski 2015/10/15 15:17:58 Measured and definitely makes a big difference >9%
235 %SetForceInlineFlag(MinSimple);
236
223 //---------------------------------------------------------------------------- 237 //----------------------------------------------------------------------------
224 238
225 // NOTE: Setting the prototype for Array must take place as early as 239 // NOTE: Setting the prototype for Array must take place as early as
226 // possible due to code generation for array literals. When 240 // possible due to code generation for array literals. When
227 // generating code for a array literal a boilerplate array is created 241 // generating code for a array literal a boilerplate array is created
228 // that is cloned when running the code. It is essential that the 242 // that is cloned when running the code. It is essential that the
229 // boilerplate gets the right prototype. 243 // boilerplate gets the right prototype.
230 %FunctionSetPrototype(GlobalArray, new GlobalArray(0)); 244 %FunctionSetPrototype(GlobalArray, new GlobalArray(0));
231 245
232 // ---------------------------------------------------------------------------- 246 // ----------------------------------------------------------------------------
233 // Exports 247 // Exports
234 248
235 $sameValue = SameValue; 249 $sameValue = SameValue;
236 $sameValueZero = SameValueZero; 250 $sameValueZero = SameValueZero;
237 251
238 utils.Export(function(to) { 252 utils.Export(function(to) {
239 to.ToPositiveInteger = ToPositiveInteger; 253 to.ToPositiveInteger = ToPositiveInteger;
254 to.MaxSimple = MaxSimple;
255 to.MinSimple = MinSimple;
240 }); 256 });
241 257
242 %InstallToContext([ 258 %InstallToContext([
243 "apply_prepare_builtin", APPLY_PREPARE, 259 "apply_prepare_builtin", APPLY_PREPARE,
244 "concat_iterable_to_array_builtin", CONCAT_ITERABLE_TO_ARRAY, 260 "concat_iterable_to_array_builtin", CONCAT_ITERABLE_TO_ARRAY,
245 "reflect_apply_prepare_builtin", REFLECT_APPLY_PREPARE, 261 "reflect_apply_prepare_builtin", REFLECT_APPLY_PREPARE,
246 "reflect_construct_prepare_builtin", REFLECT_CONSTRUCT_PREPARE, 262 "reflect_construct_prepare_builtin", REFLECT_CONSTRUCT_PREPARE,
247 ]); 263 ]);
248 264
249 %InstallToContext([ 265 %InstallToContext([
250 "concat_iterable_to_array", ConcatIterableToArray, 266 "concat_iterable_to_array", ConcatIterableToArray,
251 ]); 267 ]);
252 268
253 }) 269 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698