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

Unified Diff: src/js/typedarray.js

Issue 2232063002: [builtins] WIP: Array indexOf in TurboFan/Runtime (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: src/js/typedarray.js
diff --git a/src/js/typedarray.js b/src/js/typedarray.js
index 204e0918b24a45550be3440ac389cd2178751838..928db5cbd7838bfe5b8e46586f35ff60dada84ba 100644
--- a/src/js/typedarray.js
+++ b/src/js/typedarray.js
@@ -28,7 +28,6 @@ var InnerArrayFilter;
var InnerArrayFind;
var InnerArrayFindIndex;
var InnerArrayForEach;
-var InnerArrayIndexOf;
var InnerArrayJoin;
var InnerArrayLastIndexOf;
var InnerArrayReduce;
@@ -79,7 +78,6 @@ utils.Import(function(from) {
InnerArrayFind = from.InnerArrayFind;
InnerArrayFindIndex = from.InnerArrayFindIndex;
InnerArrayForEach = from.InnerArrayForEach;
- InnerArrayIndexOf = from.InnerArrayIndexOf;
InnerArrayJoin = from.InnerArrayJoin;
InnerArrayLastIndexOf = from.InnerArrayLastIndexOf;
InnerArrayReduce = from.InnerArrayReduce;
@@ -572,7 +570,28 @@ function TypedArrayIndexOf(element, index) {
if (!IS_TYPEDARRAY(this)) throw %make_type_error(kNotTypedArray);
var length = %_TypedArrayGetLength(this);
- return InnerArrayIndexOf(this, element, index, length);
+
Benedikt Meurer 2016/08/11 04:02:24 You could do this change to typedarray.js as a sep
mattloring 2016/08/11 17:32:57 Opened here: https://codereview.chromium.org/22435
+ if (length === 0) return -1;
+ var n = TO_INTEGER(index);
+
+ var k;
+ if (n >= 0) {
+ k = n;
+ } else {
+ k = length + n;
+ if (k < 0) {
+ k = 0;
+ }
+ }
+
+ while (k < length) {
+ var elementK = this[k];
+ if (k in this && element === elementK) {
+ return k;
+ }
+ ++k;
+ }
+ return -1;
}
%FunctionSetLength(TypedArrayIndexOf, 1);
« no previous file with comments | « src/js/string.js ('k') | src/runtime/runtime.h » ('j') | src/runtime/runtime-array.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698