Skip to content

Commit 5ce57a6

Browse files
MaxGraeydcodeIO
authored andcommitted
Fix default fromIndex in String#lastIndexOf (AssemblyScript#165)
1 parent cd14b29 commit 5ce57a6

File tree

4 files changed

+561
-352
lines changed

4 files changed

+561
-352
lines changed

std/assembly/string.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,17 +229,17 @@ export class String {
229229
return -1;
230230
}
231231

232-
lastIndexOf(searchString: String, fromIndex: i32 = 0): i32 {
232+
lastIndexOf(searchString: String, fromIndex: i32 = i32.MAX_VALUE): i32 {
233233
assert(this !== null);
234234
if (searchString === null) searchString = changetype<String>("null");
235235
var len: isize = this.length;
236236
var searchLen: isize = searchString.length;
237237
if (!searchLen) return len;
238238
if (!len) return -1;
239-
var start = clamp<isize>(fromIndex - searchLen, 0, len);
239+
var start = clamp<isize>(fromIndex, 0, len - searchLen);
240240

241241
// TODO: multiple char codes
242-
for (let k: isize = len - 1; k >= start; --k) {
242+
for (let k = start; k >= 0; --k) {
243243
if (!compare_memory(
244244
changetype<usize>(this) + HEADER_SIZE + (k << 1),
245245
changetype<usize>(searchString) + HEADER_SIZE,

0 commit comments

Comments
 (0)