Skip to content
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

Move call and new to JsMethod #1138

Merged
merged 36 commits into from Jan 16, 2021
Merged

Conversation

hoodmane
Copy link
Member

The goal of this PR is to ensure that JsProxy is no longer callable, now only JsMethod will be callable. Many bugs were caused by differences in behavior between the JsProxy_Call and JsBoundMethod_Call. If we build a proxy of a callable javascript object, we will use the subclass JsMethod. This way, there is only one Call method and no bugs caused by divergent behaviors.

This is on top of #1126 and is required for #1126 to pass the test_jsproxy_call_kwargs test (the problem in #1126 is that only JsProxy_call supports key word arguments but the object being called is an instance of JsBoundMethod_call.

(Note that #463 makes similar changes to this PR and PR #1126 for similar reasons. Once this is merged, #461 and #463 can be closed.)

Hood and others added 29 commits January 10, 2021 13:14
@dalcde
Copy link
Contributor

dalcde commented Jan 16, 2021

Should I merge this?

@hoodmane
Copy link
Member Author

Reviewing the diff just now I caught one minor mistake which I updated. If the diff looks okay to you, I think I'm happy with this. Presumably the plan is still to merge #1126 just before this?

@dalcde
Copy link
Contributor

dalcde commented Jan 16, 2021

yep

@dalcde dalcde merged commit 3fef124 into pyodide:master Jan 16, 2021
@hoodmane hoodmane deleted the call-and-new-to-js-method branch January 16, 2021 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants