Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upsyscall/js: possibility of using String.prototype.* methods on strings #35917
Comments
This comment has been minimized.
This comment has been minimized.
Workaround: you can call JS String.prototype.toLowerCase.call("FOO") In Go: js.Global().Get("String").Get("prototype").Get("toLowerCase").Call("call", js.ValueOf("FOO")) I have used this in gopherjs/vecty#251 in order to workaround this problem. |
This comment has been minimized.
This comment has been minimized.
I think it should. The current API relies on fmt.Println(body.Get("nodeName").Call("toLowerCase"))
fmt.Println(body.Get("nodeName").Call("charAt", 3)) Not pasting the code here. But I can send a CL if Richard is okay with it. |
This comment has been minimized.
This comment has been minimized.
This is because of JavaScript's autoboxing.
gets interpreted as
I do not yet see why syscall/js should emulate autoboxing. Is there any proper use case? In my opinion, for the examples above the proper solution is to use the |
This comment has been minimized.
This comment has been minimized.
Thanks for the explanation.
I agree, I don't think that would be a good change.
It should also be possible to use JavaScript's It sounds like it is possible with one of these two ways: var str string = "FOO"
js.Global().Get("String").New(str).Call("toLowerCase")
// or
js.Global().Get("String").Get("prototype").Get("toLowerCase").Call("call", str) So nothing needs to be done. I'll close this if there aren't objections. |
With GopherJS, it was possible to call the
String.prototype.toLowerCase
method on a JavaScriptString
:https://gopherjs.github.io/playground/#/ekZpm7tuW4
It's possible I'm overlooking something trivial, but this doesn't seem possible with
syscall/js
API of WebAssembly. Consider the same program modified to usesyscall/js
:Its output with Go 1.13.4 is:
Depending on whether a JavaScript
String
type is considered a "JavaScript object" or not, this may be consistent withjs.Value.Get
documentation, which says:I'm wondering if it's possible to use
toLowerCase
withsyscall/js
API? If not, should it be possible?/cc @neelance