René's URL Explorer Experiment


Title: Add Asyncify support by yonihemi · Pull Request #107 · swiftwasm/JavaScriptKit · GitHub

Open Graph Title: Add Asyncify support by yonihemi · Pull Request #107 · swiftwasm/JavaScriptKit

X Title: Add Asyncify support by yonihemi · Pull Request #107 · swiftwasm/JavaScriptKit

Description: What this adds Calls out to modules with wasm-opt's --asyncify pass to unwind and rewind the module's call stack when we want to put Swift execution to sleep while allowing incoming events to be handled by JavaScript. Further Reading Alon Zakai's Blog Alon Zakai's Talk Binaryen Docs Experimental JS wrapper from Google Concerns This adds a bit of complexity on the JS runtime side, especially the need to provide a 'restart' method for re-entering module execution. Should not affect existing usage as all additions are optional. At Swift build time, there is no way of knowing if module will be asyncified so no way to block usage of new methods. The Asyncify pass is extremely slow as well, so not a good candidate to add e.g. to carton's build process.

Open Graph Description: What this adds Calls out to modules with wasm-opt's --asyncify pass to unwind and rewind the module's call stack when we want to put Swift execution to sleep while allowing incoming events ...

X Description: What this adds Calls out to modules with wasm-opt's --asyncify pass to unwind and rewind the module's call stack when we want to put Swift execution to sleep while allowing incoming...

Opengraph URL: https://github.com/swiftwasm/JavaScriptKit/pull/107

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:5d9f75fd-72a5-cb0b-f7c2-779096420be0
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id9A54:45691:10A8EDE:16195FB:698143BF
html-safe-nonce1f91fd2da2951172519a07e111598fdfea5aa2ecac8b76bed52360a19ee5296a
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5QTU0OjQ1NjkxOjEwQThFREU6MTYxOTVGQjo2OTgxNDNCRiIsInZpc2l0b3JfaWQiOiI3NzE3MTMzMTcxMTk1NzI0NzM1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmace01a350eac6323c59bf7e6ed1f75836b557436ab3d72b002a8e1d950b6548a1f
hovercard-subject-tagpull_request:515998720
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/swiftwasm/JavaScriptKit/pull/107/files
twitter:imagehttps://avatars.githubusercontent.com/u/2340723?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/2340723?s=400&v=4
og:image:altWhat this adds Calls out to modules with wasm-opt's --asyncify pass to unwind and rewind the module's call stack when we want to put Swift execution to sleep while allowing incoming events ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None39fe8101494cbb823c09b619b68c80cd4d05ab7279997038dbe06bb91608abe1
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/swiftwasm/JavaScriptKit git https://github.com/swiftwasm/JavaScriptKit.git
octolytics-dimension-user_id49500752
octolytics-dimension-user_loginswiftwasm
octolytics-dimension-repository_id244832006
octolytics-dimension-repository_nwoswiftwasm/JavaScriptKit
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id244832006
octolytics-dimension-repository_network_root_nwoswiftwasm/JavaScriptKit
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
released5b34a4e4898b066c629879feb4b184bc471d6a7
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fswiftwasm%2FJavaScriptKit%2Fpull%2F107%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fswiftwasm%2FJavaScriptKit%2Fpull%2F107%2Ffiles
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=swiftwasm%2FJavaScriptKit
Reloadhttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Reloadhttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Reloadhttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
swiftwasm https://patch-diff.githubusercontent.com/swiftwasm
JavaScriptKithttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit
Please reload this pagehttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fswiftwasm%2FJavaScriptKit
Fork 63 https://patch-diff.githubusercontent.com/login?return_to=%2Fswiftwasm%2FJavaScriptKit
Star 836 https://patch-diff.githubusercontent.com/login?return_to=%2Fswiftwasm%2FJavaScriptKit
Code https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit
Issues 33 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/issues
Pull requests 12 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pulls
Actions https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/actions
Projects 0 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/projects
Security 0 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/security
Insights https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pulse
Code https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit
Issues https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/issues
Pull requests https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pulls
Actions https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/actions
Projects https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/projects
Security https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/security
Insights https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pulse
Sign up for GitHub https://patch-diff.githubusercontent.com/signup?return_to=%2Fswiftwasm%2FJavaScriptKit%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://patch-diff.githubusercontent.com/login?return_to=%2Fswiftwasm%2FJavaScriptKit%2Fissues%2Fnew%2Fchoose
yonihemihttps://patch-diff.githubusercontent.com/yonihemi
swiftwasm:mainhttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/tree/main
yonihemi:asyncifyhttps://patch-diff.githubusercontent.com/yonihemi/JavaScriptKit/tree/asyncify
Conversation 17 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107
Commits 12 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits
Checks 0 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/checks
Files changed https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Please reload this pagehttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Add Asyncify support https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#top
Show all changes 12 commits https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
d3b0a4c Implement sleep yonihemi Nov 4, 2020 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/d3b0a4c51df1d3e0c2e3fcfc575189c02679ad4d
62953b7 Add Promise sync handlers yonihemi Nov 5, 2020 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/62953b7582e6e6aabdc853571278720a84312c98
074467d Add Promise sync handlers yonihemi Nov 5, 2020 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/074467d97cdfe7031572904b2e55fea83d14576a
3ae49b6 Update index.ts yonihemi Nov 5, 2020 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/3ae49b6e6c1e13ee0fcb09b6d9edb7b8f8a61e01
ccb7297 Correctly allocate buffer for Asyncify stack yonihemi Nov 24, 2020 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/ccb7297684714c77126b9c41108d939dbfc2a2de
a3dcfa7 Merge remote-tracking branch 'upstream/main' into asyncify yonihemi Nov 30, 2020 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/a3dcfa7dc7f578e5d928a8f22c3f06a6ce24f1b9
8704225 Merge remote-tracking branch 'upstream/main' into asyncify yonihemi Jan 8, 2021 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/8704225b076735ac3c1e7084d6071694721626a1
d1fff95 For incoming function calls while instance is sleeping, process after… yonihemi Jan 8, 2021 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/d1fff95d0498c599bfff0f5af91da9e1317f4fd7
2def067 Remove await with timeout to simplify runtime interface yonihemi Jan 8, 2021 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/2def067a5d0c9a54c093995f4dea1fc5e6d43d6d
a733efb Merge remote-tracking branch 'upstream/main' into asyncify yonihemi Jan 30, 2021 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/a733efbd856c93a49a2165bcad7dee3369a2f9c6
bcfa3cb Use new simplified JSPromise API yonihemi Jan 30, 2021 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/bcfa3cb919811430347eba4d3a52be2c8a5b3fe3
cd302ce Defer resuming after caught rejected Promise yonihemi Jan 31, 2021 https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/commits/cd302ce061c8d749696faadc8352a1fdf557414c
Clear filters https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Please reload this pagehttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
Please reload this pagehttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files
index.ts https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
PauseExecution.swift https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-96a1d35deb7541f0b550c5d9fcdf7f86bac3bda9a90ec38a93a35f18e36e0d05
XcodeSupport.swift https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-64c8bce9f51d079bbf8d42cae808aac1f89fbab6ab59135c5b1a8c972bc77719
_CJavaScriptKit.c https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-8402e17b522a46dc0c3c9b3239a75fc195e6d7d015b39574b4a6deb4457d8f2d
_CJavaScriptKit.h https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-99ba1ff8af34b0999953e12be4a21c8ec3cb586532cd19956c2379907ebd280f
Runtime/src/index.tshttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
View file https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/blob/cd302ce061c8d749696faadc8352a1fdf557414c/Runtime/src/index.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-a60badd06207b87dd4daadc7220175564897de3d1778271dee9a939dc9127805
Sources/JavaScriptKit/PauseExecution.swifthttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-96a1d35deb7541f0b550c5d9fcdf7f86bac3bda9a90ec38a93a35f18e36e0d05
View file https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/blob/cd302ce061c8d749696faadc8352a1fdf557414c/Sources/JavaScriptKit/PauseExecution.swift
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/{{ revealButtonHref }}
Sources/JavaScriptKit/XcodeSupport.swifthttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-64c8bce9f51d079bbf8d42cae808aac1f89fbab6ab59135c5b1a8c972bc77719
View file https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/blob/cd302ce061c8d749696faadc8352a1fdf557414c/Sources/JavaScriptKit/XcodeSupport.swift
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-64c8bce9f51d079bbf8d42cae808aac1f89fbab6ab59135c5b1a8c972bc77719
Sources/_CJavaScriptKit/_CJavaScriptKit.chttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-8402e17b522a46dc0c3c9b3239a75fc195e6d7d015b39574b4a6deb4457d8f2d
View file https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/blob/cd302ce061c8d749696faadc8352a1fdf557414c/Sources/_CJavaScriptKit/_CJavaScriptKit.c
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-8402e17b522a46dc0c3c9b3239a75fc195e6d7d015b39574b4a6deb4457d8f2d
Sources/_CJavaScriptKit/include/_CJavaScriptKit.hhttps://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-99ba1ff8af34b0999953e12be4a21c8ec3cb586532cd19956c2379907ebd280f
View file https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/blob/cd302ce061c8d749696faadc8352a1fdf557414c/Sources/_CJavaScriptKit/include/_CJavaScriptKit.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/{{ revealButtonHref }}
https://patch-diff.githubusercontent.com/swiftwasm/JavaScriptKit/pull/107/files#diff-99ba1ff8af34b0999953e12be4a21c8ec3cb586532cd19956c2379907ebd280f
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.