Commit a01ab93f authored by littledan's avatar littledan Committed by Commit bot

Revert of Use simple/fast macro version of MinMax in JS (patchset #2 id:20001...

Revert of Use simple/fast macro version of MinMax in JS (patchset #2 id:20001 of https://codereview.chromium.org/1390023003/ )

Reason for revert:
This contains bugs, as found by mstarzinger. Reverting until we can find a clean fix (maybe it should be an inline function instead of a macro).

Original issue's description:
> Use simple/fast macro version of MinMax in JS
>
> Use the simple macro version of {Min, Max} where possible to
> improve performance
>
> Follow-up to CR: https://codereview.chromium.org/1331993004
>
> BUG=
>
> Committed: https://crrev.com/27c96c26212a10bb7f19f7bf3ff793b31bbad354
> Cr-Commit-Position: refs/heads/master@{#31162}

TBR=jkummerow@chromium.org,mstarzinger@chromium.org,karl@skomski.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1394303003

Cr-Commit-Position: refs/heads/master@{#31187}
parent 29ba2e04
......@@ -15,6 +15,7 @@ var Delete;
var GlobalArray = global.Array;
var InternalArray = utils.InternalArray;
var InternalPackedArray = utils.InternalPackedArray;
var MathMin;
var ObjectHasOwnProperty;
var ObjectIsFrozen;
var ObjectIsSealed;
......@@ -23,6 +24,7 @@ var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
utils.Import(function(from) {
Delete = from.Delete;
MathMin = from.MathMin;
ObjectHasOwnProperty = from.ObjectHasOwnProperty;
ObjectIsFrozen = from.ObjectIsFrozen;
ObjectIsSealed = from.ObjectIsSealed;
......@@ -258,7 +260,7 @@ function SparseMove(array, start_i, del_count, len, num_additional_args) {
// Move data to new array.
var new_array = new InternalArray(
// Clamp array length to 2^32-1 to avoid early RangeError.
MIN_SIMPLE(len - del_count + num_additional_args, 0xffffffff));
MathMin(len - del_count + num_additional_args, 0xffffffff));
var big_indices;
var indices = %GetArrayKeys(array, len);
if (IS_NUMBER(indices)) {
......
......@@ -13,8 +13,15 @@
var GlobalArrayBuffer = global.ArrayBuffer;
var GlobalObject = global.Object;
var MathMax;
var MathMin;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) {
MathMax = from.MathMax;
MathMin = from.MathMin;
});
// -------------------------------------------------------------------
function ArrayBufferConstructor(length) { // length = 1
......@@ -48,16 +55,16 @@ function ArrayBufferSlice(start, end) {
var first;
var byte_length = %_ArrayBufferGetByteLength(this);
if (relativeStart < 0) {
first = MAX_SIMPLE(byte_length + relativeStart, 0);
first = MathMax(byte_length + relativeStart, 0);
} else {
first = MIN_SIMPLE(relativeStart, byte_length);
first = MathMin(relativeStart, byte_length);
}
var relativeEnd = IS_UNDEFINED(end) ? byte_length : end;
var fin;
if (relativeEnd < 0) {
fin = MAX_SIMPLE(byte_length + relativeEnd, 0);
fin = MathMax(byte_length + relativeEnd, 0);
} else {
fin = MIN_SIMPLE(relativeEnd, byte_length);
fin = MathMin(relativeEnd, byte_length);
}
if (fin < first) {
......
......@@ -15,12 +15,16 @@ var GetIterator;
var GetMethod;
var GlobalArray = global.Array;
var iteratorSymbol = utils.ImportNow("iterator_symbol");
var MathMax;
var MathMin;
var ObjectIsFrozen;
var ObjectDefineProperty;
utils.Import(function(from) {
GetIterator = from.GetIterator;
GetMethod = from.GetMethod;
MathMax = from.MathMax;
MathMin = from.MathMin;
ObjectIsFrozen = from.ObjectIsFrozen;
ObjectDefineProperty = from.ObjectDefineProperty;
});
......@@ -31,28 +35,28 @@ function InnerArrayCopyWithin(target, start, end, array, length) {
target = TO_INTEGER(target);
var to;
if (target < 0) {
to = MAX_SIMPLE(length + target, 0);
to = MathMax(length + target, 0);
} else {
to = MIN_SIMPLE(target, length);
to = MathMin(target, length);
}
start = TO_INTEGER(start);
var from;
if (start < 0) {
from = MAX_SIMPLE(length + start, 0);
from = MathMax(length + start, 0);
} else {
from = MIN_SIMPLE(start, length);
from = MathMin(start, length);
}
end = IS_UNDEFINED(end) ? length : TO_INTEGER(end);
var final;
if (end < 0) {
final = MAX_SIMPLE(length + end, 0);
final = MathMax(length + end, 0);
} else {
final = MIN_SIMPLE(end, length);
final = MathMin(end, length);
}
var count = MIN_SIMPLE(final - from, length - to);
var count = MathMin(final - from, length - to);
var direction = 1;
if (from < to && to < (from + count)) {
direction = -1;
......
......@@ -12,8 +12,13 @@
// Imports
var GlobalObject = global.Object;
var MathMax;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) {
MathMax = from.MathMax;
});
// -------------------------------------------------------------------
......@@ -141,7 +146,7 @@ function AtomicsFutexWaitJS(ia, index, value, timeout) {
if (NUMBER_IS_NAN(timeout)) {
timeout = INFINITY;
} else {
timeout = MAX_SIMPLE(0, timeout);
timeout = MathMax(0, timeout);
}
}
return %AtomicsFutexWait(ia, index, value, timeout);
......@@ -153,14 +158,14 @@ function AtomicsFutexWakeJS(ia, index, count) {
if (index < 0 || index >= %_TypedArrayGetLength(ia)) {
return UNDEFINED;
}
count = MAX_SIMPLE(0, TO_INTEGER(count));
count = MathMax(0, TO_INTEGER(count));
return %AtomicsFutexWake(ia, index, count);
}
function AtomicsFutexWakeOrRequeueJS(ia, index1, count, value, index2) {
CheckSharedInteger32TypedArray(ia);
index1 = TO_INTEGER(index1);
count = MAX_SIMPLE(0, TO_INTEGER(count));
count = MathMax(0, TO_INTEGER(count));
value = TO_INT32(value);
index2 = TO_INTEGER(index2);
if (index1 < 0 || index1 >= %_TypedArrayGetLength(ia) ||
......
......@@ -48,6 +48,8 @@ var InnerArraySome;
var InnerArraySort;
var InnerArrayToLocaleString;
var IsNaN;
var MathMax;
var MathMin;
var PackedArrayReverse;
utils.Import(function(from) {
......@@ -70,6 +72,8 @@ utils.Import(function(from) {
InnerArraySort = from.InnerArraySort;
InnerArrayToLocaleString = from.InnerArrayToLocaleString;
IsNaN = from.IsNaN;
MathMax = from.MathMax;
MathMin = from.MathMin;
PackedArrayReverse = from.PackedArrayReverse;
});
......@@ -315,9 +319,9 @@ function TypedArraySlice(start, end) {
var k;
if (relativeStart < 0) {
k = MAX_SIMPLE(len + relativeStart, 0);
k = MathMax(len + relativeStart, 0);
} else {
k = MIN_SIMPLE(relativeStart, len);
k = MathMin(relativeStart, len);
}
var relativeEnd;
......@@ -329,12 +333,12 @@ function TypedArraySlice(start, end) {
var final;
if (relativeEnd < 0) {
final = MAX_SIMPLE(len + relativeEnd, 0);
final = MathMax(len + relativeEnd, 0);
} else {
final = MIN_SIMPLE(relativeEnd, len);
final = MathMin(relativeEnd, len);
}
var count = MAX_SIMPLE(final - k, 0);
var count = MathMax(final - k, 0);
var array = ConstructTypedArrayLike(this, count);
// The code below is the 'then' branch; the 'else' branch species
// a memcpy. Because V8 doesn't canonicalize NaN, the difference is
......
......@@ -13,10 +13,14 @@
var GlobalJSON = global.JSON;
var InternalArray = utils.InternalArray;
var MathMax;
var MathMin;
var ObjectHasOwnProperty;
var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
utils.Import(function(from) {
MathMax = from.MathMax;
MathMin = from.MathMin;
ObjectHasOwnProperty = from.ObjectHasOwnProperty;
});
......@@ -211,7 +215,7 @@ function JSONStringify(value, replacer, space) {
}
var gap;
if (IS_NUMBER(space)) {
space = MAX_SIMPLE(0, MIN_SIMPLE(TO_INTEGER(space), 10));
space = MathMax(0, MathMin(TO_INTEGER(space), 10));
gap = %_SubString(" ", 0, space);
} else if (IS_STRING(space)) {
if (space.length > 10) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment