Fix example Response.json() this-binding; document how to run it#25
Merged
Conversation
The #8 rewrite extracted `responseObject.json.function` and invoked it unbound, so `this` was undefined and every fetch tick failed in real browsers with "Illegal invocation". Call it bound via `jsonFn(this:)`. Verified end-to-end in Chrome and in iOS Simulator Safari via the PackageToJS `--use-cdn` browser bundle; README gains a "Running the example" guide (bundle, index.html loader, static serve, simulator Safari) so the run path is documented. Fixes #24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation
Asked "can OpenCombineJSExample run on a simulator, or is it unrunnable?" — investigation showed (a) it can never run as a native process (JavaScriptKit's JS bridge is
#if __wasm32__; native launch is an immediate SIGABRT), and (b) once actually run in a browser, the example failed every tick: the #8 rewrite calledResponse.json()unbound → "Illegal invocation".Changes
jsonFn(this: responseObject)— bound call (example + README mirror).--use-cdnbundle,index.htmlloader, static serve, opening in a host browser or Safari inside a booted iOS simulator (xcrun simctl openurl).Test plan
swiftformat --lintclean; wasm bundle builds viaswift package js --use-cdn.Fixes #24