Index: src/harmony-string.js |
diff --git a/src/harmony-string.js b/src/harmony-string.js |
index 6bbe139e87a3a2e96227799fea537261e9f87b51..b2c43ec6ef1660973a2f108e0b3ef196bdb4a6c5 100644 |
--- a/src/harmony-string.js |
+++ b/src/harmony-string.js |
@@ -98,28 +98,23 @@ function StringEndsWith(searchString /* position */) { // length == 1 |
function StringIncludes(searchString /* position */) { // length == 1 |
CHECK_OBJECT_COERCIBLE(this, "String.prototype.includes"); |
- var s = TO_STRING_INLINE(this); |
+ var string = TO_STRING_INLINE(this); |
if (IS_REGEXP(searchString)) { |
throw MakeTypeError("first_argument_not_regexp", |
["String.prototype.includes"]); |
} |
- var ss = TO_STRING_INLINE(searchString); |
- var pos = 0; |
- if (%_ArgumentsLength() > 1) { |
- pos = %_Arguments(1); // position |
- pos = ToInteger(pos); |
- } |
+ var searchStr = TO_STRING_INLINE(searchString); |
arv (Not doing code reviews)
2015/01/14 16:10:15
searchStr -> searchString
|
+ var pos = ToInteger(%_Arguments(1)); |
+ var len = string.length; |
+ var searchLen = searchStr.length; |
arv (Not doing code reviews)
2015/01/14 16:10:15
searchLen -> searchLength
|
- var s_len = s.length; |
- var start = MathMin(MathMax(pos, 0), s_len); |
- var ss_len = ss.length; |
- if (ss_len + start > s_len) { |
- return false; |
- } |
+ if (pos < 0) pos = 0; |
+ if (pos > len) pos = len; |
arv (Not doing code reviews)
2015/01/14 16:10:15
else if here?
|
+ if (searchLen + pos > len) return false; |
- return %StringIndexOf(s, ss, start) !== -1; |
+ return %StringIndexOf(string, searchStr, pos) !== -1; |
} |