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.
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.
I checked the example and it worked just fine.
There was a problem hiding this comment.
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 robert.fancsik@h-lab.eu JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi gergocs@inf.u-szeged.hu
81be572 to
3e74b28
Compare
This patch fixes #4888.
The implementation is based on PR #4898, only resolved the conflicts and
applied requested changes.
Co-authored-by: Robert Fancsik robert.fancsik@h-lab.eu
JerryScript-DCO-1.0-Signed-off-by: Gergo Csizi gergocs@inf.u-szeged.hu