| Index: src/harmony-array.js
|
| diff --git a/src/harmony-array.js b/src/harmony-array.js
|
| index 88b878f0a76ef594f64f7905d61459c05749724b..f2f709794b7b69fac0b2b7c36eaf59c404e67b0b 100644
|
| --- a/src/harmony-array.js
|
| +++ b/src/harmony-array.js
|
| @@ -123,6 +123,41 @@ function ArrayFill(value /* [, start [, end ] ] */) { // length == 1
|
| return array;
|
| }
|
|
|
| +// Proposed for ES7
|
| +// https://github.com/domenic/Array.prototype.contains/
|
| +// 3fb531d074eddf5d23e0a46b57ea48932e1fac69
|
| +function ArrayContains(searchElement, fromIndex) {
|
| + var array = ToObject(this);
|
| + var len = ToLength(array.length);
|
| +
|
| + if (len === 0) {
|
| + return false;
|
| + }
|
| +
|
| + var n = ToInteger(fromIndex);
|
| +
|
| + var k;
|
| + if (n >= 0) {
|
| + k = n;
|
| + } else {
|
| + k = len + n;
|
| + if (k < 0) {
|
| + k = 0;
|
| + }
|
| + }
|
| +
|
| + while (k < len) {
|
| + var elementK = array[k];
|
| + if (SameValueZero(searchElement, elementK)) {
|
| + return true;
|
| + }
|
| +
|
| + ++k;
|
| + }
|
| +
|
| + return false;
|
| +}
|
| +
|
| // ES6, draft 05-22-14, section 22.1.2.3
|
| function ArrayOf() {
|
| var length = %_ArgumentsLength();
|
| @@ -146,8 +181,11 @@ function HarmonyArrayExtendArrayPrototype() {
|
| "of", ArrayOf
|
| ));
|
|
|
| + %FunctionSetLength(ArrayContains, 1);
|
| +
|
| // Set up the non-enumerable functions on the Array prototype object.
|
| InstallFunctions($Array.prototype, DONT_ENUM, $Array(
|
| + "contains", ArrayContains,
|
| "find", ArrayFind,
|
| "findIndex", ArrayFindIndex,
|
| "fill", ArrayFill
|
|
|