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

Unified Diff: src/js/string.js

Issue 2407793002: Revert of [builtins] Move StringIncludes to a builtin. (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « src/builtins/builtins-string.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/js/string.js
diff --git a/src/js/string.js b/src/js/string.js
index e0ee7adef769f28a9499a44642510fa4df84dda3..28e74a50cb1fb28af37f9ec63aef39d031fcd423 100644
--- a/src/js/string.js
+++ b/src/js/string.js
@@ -433,6 +433,34 @@
%FunctionSetLength(StringEndsWith, 1);
+// ES6 draft 04-05-14, section 21.1.3.6
+function StringIncludes(searchString, position) { // length == 1
+ CHECK_OBJECT_COERCIBLE(this, "String.prototype.includes");
+
+ var string = TO_STRING(this);
+
+ if (IsRegExp(searchString)) {
+ throw %make_type_error(kFirstArgumentNotRegExp, "String.prototype.includes");
+ }
+
+ searchString = TO_STRING(searchString);
+ var pos = TO_INTEGER(position);
+
+ var stringLength = string.length;
+ if (pos < 0) pos = 0;
+ if (pos > stringLength) pos = stringLength;
+ var searchStringLength = searchString.length;
+
+ if (searchStringLength + pos > stringLength) {
+ return false;
+ }
+
+ return %StringIndexOf(string, searchString, pos) !== -1;
+}
+
+%FunctionSetLength(StringIncludes, 1);
+
+
// ES6 Draft 05-22-2014, section 21.1.3.3
function StringCodePointAt(pos) {
CHECK_OBJECT_COERCIBLE(this, "String.prototype.codePointAt");
@@ -491,6 +519,7 @@
"codePointAt", StringCodePointAt,
"concat", StringConcat,
"endsWith", StringEndsWith,
+ "includes", StringIncludes,
"match", StringMatchJS,
"repeat", StringRepeat,
"replace", StringReplace,
« no previous file with comments | « src/builtins/builtins-string.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698