| Index: src/harmony-typedarray.js | 
| diff --git a/src/harmony-typedarray.js b/src/harmony-typedarray.js | 
| index 59c9a79bd22144422d1bce9559c4cf1367dc37d8..025de55d582e6287833fd2f6f716e41a16021aa4 100644 | 
| --- a/src/harmony-typedarray.js | 
| +++ b/src/harmony-typedarray.js | 
| @@ -100,6 +100,40 @@ function TypedArrayReverse() { | 
| } | 
|  | 
|  | 
| +function TypedArrayComparefn(x, y) { | 
| +  if ($isNaN(x) && $isNaN(y)) { | 
| +    return $isNaN(y) ? 0 : 1; | 
| +  } | 
| +  if ($isNaN(x)) { | 
| +    return 1; | 
| +  } | 
| +  if (x === 0 && x === y) { | 
| +    if (%_IsMinusZero(x)) { | 
| +      if (!%_IsMinusZero(y)) { | 
| +        return -1; | 
| +      } | 
| +    } else if (%_IsMinusZero(y)) { | 
| +      return 1; | 
| +    } | 
| +  } | 
| +  return x - y; | 
| +} | 
| + | 
| + | 
| +// 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(); | 
| @@ -150,7 +184,8 @@ macro EXTEND_TYPED_ARRAY(NAME) | 
| "find", TypedArrayFind, | 
| "findIndex", TypedArrayFindIndex, | 
| "fill", TypedArrayFill, | 
| -    "reverse", TypedArrayReverse | 
| +    "reverse", TypedArrayReverse, | 
| +    "sort", TypedArraySort | 
| ]); | 
| endmacro | 
|  | 
|  |