-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
WASM Bindings optimizations and fixes #41808
Merged
Merged
Changes from all commits
Commits
Show all changes
92 commits
Select commit
Hold shift + click to select a range
bc06440
Fix MarshalTypedArrayByte and re-enable it. Re-enable TestFunctionApply
kg 3a086fc
Re-enable MarshalTypedArray
kg 448f6bb
Detect when the managed wrapper for a JS object has been collected an…
kg cc7d6ef
Remove debugging code
kg 3f062d5
Cleanup
kg 63edf6d
Checkpoint
kg 34db536
Checkpoint
kg a6e23ac
Checkpoint
kg 3010582
Checkpoint
kg fb825f0
Checkpoint
kg 89c1ccd
Checkpoint: Works again
kg 93145d3
Checkpoint
kg 51510f4
Checkpoint
kg cc90abf
Checkpoint
kg 1659d0f
Checkpoint
kg 30aa9f9
Checkpoint
kg 7f61cc0
Checkpoint
kg e322c12
Checkpoint
kg 944d2a8
Checkpoint benchmark
kg 9951ee8
Checkpoint
kg a4a6928
Checkpoint
kg ce163d6
Maintain a small pool of temporary root instances to minimize GC pres…
kg d0a709a
Don't use release_roots in call_method due to varargs overhead
kg 721ca89
Various call_method optimizations
kg d6fb37e
Checkpoint
kg e74265a
Checkpoint
kg ad19722
Checkpoint
kg 7732fb5
Checkpoint: Make binding methods produce a wrapper that is faster to …
kg 14aea42
Optimize get/set on temporary roots
kg 88c2c58
Checkpoint
kg d527d08
Checkpoint
kg 8edc845
Checkpoint
kg b7717ad
Checkpoint
kg c5db1a7
Checkpoint
kg fa0f14e
Checkpoint
kg 98b8888
Checkpoint
kg f0c9b4f
Checkpoint
kg 8ad1750
Checkpoint
kg bb83ead
Checkpoint
kg 2da2944
Checkpoint
kg 17bbf87
Checkpoint
kg 87ea9d3
Checkpoint
kg f3aad06
Checkpoint
kg 2b50178
Checkpoint
kg 2e19e9d
Checkpoint
kg da6905d
Checkpoint
kg 8ee112a
Checkpoint
kg 968350d
Checkpoint
kg a15ecd4
Checkpoint: Don't rely on finally block for teardown in call path, be…
kg e97f71f
Checkpoint
kg 9d0a7c0
Checkpoint
kg 40261df
Checkpoint
kg 6738f62
Checkpoint: Unboxing fast path for primitives
kg a05c84d
Checkpoint: Fix unboxing fast path
kg 4fbdfa6
Update bindings to use bound static methods instead of call_method in…
kg 58253fd
Checkpoint
kg 5fc5c15
Checkpoint
kg 5eceb5e
Address PR feedback
kg 3c29e85
Revert sample and add separate proj for benchmark
kg e164f7c
Fix benchmark
kg 5ca18f1
Revert test change
kg bc8b0c5
Fix passing mono object ptrs to bound functions
kg 5e80d53
Implement unboxing for chars
kg c9e1ef4
Don't allocate a root buffer for arguments if nothing needs to be roo…
kg 1caf839
Fix whitespace damage from merge
kg d8616c7
Tweaks to try and prevent boxing/gc
kg 2f1f031
Fix typo
kg f5e9877
Add some tests
lewing 2821872
Fix test failures
kg 61bcc89
Add more error handling and diagnostic messages
kg 7ad28a0
Repair merge damage
kg e165bba
Remove bindings benchmark
kg f43d68c
Use TypedArray.fill 3-argument version to zero memory
kg b5e211f
Checkpoint: Introduce format strings
kg 58bfb83
Fix interpolated strings
lewing 392c55e
Test refactoring
kg 6267d66
Checkpoint: Add more test coverage for bindings and interop
kg 506b4f0
Checkpoint
kg 0c9f9d7
Checkpoint
kg 4f33972
Checkpoint: Enum marshaling works
kg f9bc6b5
Improve test coverage
kg a27fefd
Checkpoint: Unify unboxing of primitive types
kg f9f5f89
Checkpoint: Unify unboxing of primitive types
kg 9081ffd
Checkpoint: Restore fn to satisfy runtime-test.js
kg 1e0ba4d
Checkpoint: Unify boxing for primitives
kg d24c02b
Checkpoint
kg 215cdd2
Remove now-unused box methods
kg dcdb16a
Don't store names for null method IDs
kg fcf398a
Fix indentation damage
kg 5e9cff3
Add test
kg 2806916
Satisfy CI
kg 635aa03
Accept weaker promises
lewing File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fairly sure this is just masking the problem, I wonder if the issue is that we need to be able to promote weak refs into strong ones.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's correct in some scenarios for it to have expired, if nothing is retaining a reference to globalThis.Math then the C# wrapper for it should be able to get collected. That's at least what was causing the test failures