mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-26 15:32:16 +00:00
Fix default fromIndex in String#lastIndexOf (#165)
This commit is contained in:
parent
cd14b296ce
commit
5ce57a6434
@ -229,17 +229,17 @@ export class String {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
lastIndexOf(searchString: String, fromIndex: i32 = 0): i32 {
|
lastIndexOf(searchString: String, fromIndex: i32 = i32.MAX_VALUE): i32 {
|
||||||
assert(this !== null);
|
assert(this !== null);
|
||||||
if (searchString === null) searchString = changetype<String>("null");
|
if (searchString === null) searchString = changetype<String>("null");
|
||||||
var len: isize = this.length;
|
var len: isize = this.length;
|
||||||
var searchLen: isize = searchString.length;
|
var searchLen: isize = searchString.length;
|
||||||
if (!searchLen) return len;
|
if (!searchLen) return len;
|
||||||
if (!len) return -1;
|
if (!len) return -1;
|
||||||
var start = clamp<isize>(fromIndex - searchLen, 0, len);
|
var start = clamp<isize>(fromIndex, 0, len - searchLen);
|
||||||
|
|
||||||
// TODO: multiple char codes
|
// TODO: multiple char codes
|
||||||
for (let k: isize = len - 1; k >= start; --k) {
|
for (let k = start; k >= 0; --k) {
|
||||||
if (!compare_memory(
|
if (!compare_memory(
|
||||||
changetype<usize>(this) + HEADER_SIZE + (k << 1),
|
changetype<usize>(this) + HEADER_SIZE + (k << 1),
|
||||||
changetype<usize>(searchString) + HEADER_SIZE,
|
changetype<usize>(searchString) + HEADER_SIZE,
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -28,9 +28,12 @@ assert("".lastIndexOf("hi") == -1);
|
|||||||
assert(str.lastIndexOf("") == str.length);
|
assert(str.lastIndexOf("") == str.length);
|
||||||
assert(str.lastIndexOf(",") == 2);
|
assert(str.lastIndexOf(",") == 2);
|
||||||
assert(str.lastIndexOf("x") == -1);
|
assert(str.lastIndexOf("x") == -1);
|
||||||
|
assert(str.lastIndexOf("g") == 15);
|
||||||
assert(str.lastIndexOf(",", 2) == 2);
|
assert(str.lastIndexOf(",", 2) == 2);
|
||||||
assert(str.lastIndexOf(",", 3) == 2);
|
assert(str.lastIndexOf(",", 3) == 2);
|
||||||
assert(str.lastIndexOf(", I", -1) == 2);
|
assert(str.lastIndexOf(", I", -1) == -1);
|
||||||
|
assert(str.lastIndexOf("i", 0) == -1);
|
||||||
|
assert(str.lastIndexOf("hi", 0) == 0);
|
||||||
|
|
||||||
export function getString(): string {
|
export function getString(): string {
|
||||||
return str;
|
return str;
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user