Add trim/trimStart/trimEnd to string prototype #30
+39
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hey there, I saw your JSConf talk about writing a toy JS engine, and I wanted to contribute. I am not very experienced in Rust, so bear with me :)!
I implemented trim/trimEnd/trimStart to get my toes wet, which are part of #13.
There is a subtle difference in what Rust regards whitespace, and what is considered whitespace in the ECMAScript language. From what I could gather in both languages, it appears that Rust does consider
U+0085
(next line) as whitespace but notU+FEFF
(zero width non-breaking space), and vice versa for ECMAScript.I wrote a bit of JavaScript to compare to the v8 impl, all console logs should print true[1]:
Feedback more than welcome!
[1]: Not very pretty JavaScript, but it works in boa :). Implementing
Array.prototype.map
was too much work for an initial contribution ;)