-
Notifications
You must be signed in to change notification settings - Fork 675
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Typedarray.slice fastpath when the content type is matching #5177
Fix Typedarray.slice fastpath when the content type is matching #5177
Conversation
|
||
memcpy (dst_buffer_p, src_buffer_p, count << info_p->shift); | ||
} | ||
else if (count >= new_typedarray_info.offset) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to be fair, there was a comment on the original PR which has not been answered yet. I paste it here.
What if count is less than the target offset? I don't think this condition is correct.
var buf = new ArrayBuffer(10); var a1 = new Int8Array(buf, 0, 5); a1.fill(1); a1.constructor = { [Symbol.species]: function (len) { return new Int8Array(buf, 5, 5); } }; var a2 = a1.slice(2,4); res = new Int8Array(buf, 0, 10);
Also, I don't think checking the offset is the right way, we need to check whether the two typedarrays use the same arraybuffer instead, and only then fall back to copying element-by-element.
Originally posted by @dbatyai in #4898 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked the example and it worked just fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have concerns about the results. The test case linked by Dániel run without an error message, but the result is correct? Sadly, as I see, no, please check it, use the mentioned test case in the PR as well, and make a results validation for res
in the last line. Dániel's review seems appropriate to me.
93c32e8
to
81be572
Compare
This patch fixes jerryscript-project#4888. The implementation is based on PR jerryscript-project#4898, only resolved the conflicts and applied requested changes. Co-authored-by: Robert Fancsik [email protected] JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi [email protected]
81be572
to
3e74b28
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still LGTM
This patch fixes #4888.
The implementation is based on PR #4898, only resolved the conflicts and
applied requested changes.
Co-authored-by: Robert Fancsik [email protected]
JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi [email protected]