Chromium Code Reviews| Index: src/harmony-typedarray.js |
| diff --git a/src/harmony-typedarray.js b/src/harmony-typedarray.js |
| index 90679e0c1fe1afffb6b6b7115e93719e02d7b0c1..1c1f3d9e355948a91ada1f9f830d43ff53130a7e 100644 |
| --- a/src/harmony-typedarray.js |
| +++ b/src/harmony-typedarray.js |
| @@ -91,6 +91,42 @@ function TypedArrayFindIndex(predicate, thisArg) { |
| %FunctionSetLength(TypedArrayFindIndex, 1); |
| +function TypedArrayComparefn(x, y) { |
|
arv (Not doing code reviews)
2015/05/19 15:49:31
This is OK for now but I think we might want to in
dehrenberg
2015/05/19 16:39:09
Acknowledged.
|
| + if ($isNaN(x) && $isNaN(y)) { |
| + return 0; |
| + } else if ($isNaN(x)) { |
|
arv (Not doing code reviews)
2015/05/19 15:49:31
no else after return
The order can be changed to
dehrenberg
2015/05/19 16:39:08
Done.
|
| + return 1; |
| + } else if ($isNaN(y)) { |
| + return -1; |
| + } else if (x < y) { |
| + return -1; |
|
arv (Not doing code reviews)
2015/05/19 15:49:31
Do we care about -1? Generally this just has to be
dehrenberg
2015/05/19 16:39:09
Done.
|
| + } else if (x > y) { |
| + return 1; |
| + } else if (x === y && x === 0) { |
| + if (%_IsMinusZero(x) && !%_IsMinusZero(y)) { |
| + return -1; |
| + } else if (!%_IsMinusZero(x) && %_IsMinusZero(y)) { |
|
arv (Not doing code reviews)
2015/05/19 15:49:31
reorg to reduce test?
dehrenberg
2015/05/19 16:39:08
Done.
|
| + return 1; |
| + } |
| + } |
| + return 0; |
| +} |
| + |
| + |
| +// ES6 draft 05-18-15, section 22.2.3.25 |
| +function TypedArraySort(comparefn) { |
| + if (!%IsTypedArray(this)) throw MakeTypeError(kNotTypedArray); |
| + |
| + var length = %_TypedArrayGetLength(this); |
| + |
| + if (IS_UNDEFINED(comparefn)) { |
| + comparefn = TypedArrayComparefn; |
| + } |
| + |
| + return %_CallFunction(this, length, comparefn, $innerArraySort); |
| +} |
| + |
| + |
| // ES6 draft 08-24-14, section 22.2.2.2 |
| function TypedArrayOf() { |
| var length = %_ArgumentsLength(); |
| @@ -140,7 +176,8 @@ macro EXTEND_TYPED_ARRAY(NAME) |
| "forEach", TypedArrayForEach, |
| "find", TypedArrayFind, |
| "findIndex", TypedArrayFindIndex, |
| - "fill", TypedArrayFill |
| + "fill", TypedArrayFill, |
| + "sort", TypedArraySort |
| ]); |
| endmacro |