Javascript:SpiderMonkey:OdinMonkey: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 3: Line 3:
* [https://docs.google.com/spreadsheets/d/1PFa3aDxY6mffT8uoflCaFitX9lKj_Y4_aZwtMApIRiI/edit#gid=0 SharedArrayBuffer, Atomics, Futex]
* [https://docs.google.com/spreadsheets/d/1PFa3aDxY6mffT8uoflCaFitX9lKj_Y4_aZwtMApIRiI/edit#gid=0 SharedArrayBuffer, Atomics, Futex]


== Planned next projects ==
== Possible further load-time optimizations ==
* Zero-cost exception handling: {{bug|1065089}}
* Fix asm.js caching browser interop ({{bug|1047098}}, {{bug|1047105}}
* Move code generation off of parsing thread: {{bug|959263}}
* Move code generation off of parsing thread: {{bug|959263}}
* PGAOT (Profile-Guided Ahead-of-Time Compilation):  
* PGAOT (Profile-Guided Ahead-of-Time Compilation):  
** Create a baseline asm.js compiler: super-fast codegen but with full static type info
** Create a baseline asm.js compiler: super-fast codegen but with full static type info
** Allow individual functions in an asm.js module to choose full or baseline (via "use" pragma on individual functions)
** Allow individual functions in an asm.js module to choose full or baseline (via "use" pragma on individual functions)
** Allow Emscripten users to change default (full or baseline), hand-annotate, or do profiling to place pragmas.
** Allow Emscripten users to change default (full or baseline), hand-annotate, or do profiling  
 
to place pragmas.
== Possible further load-time optimizations ==
* Parse and AOT compile while downloading: {{bug|1061886}}
* Parse and AOT compile while downloading: {{bug|1061886}}
* Remove async-script requirement for asm.js caching:  
* Remove async-script requirement for asm.js caching:  
Line 30: Line 27:


== Possible asm.js extensions that don't require new JS features ==
== Possible asm.js extensions that don't require new JS features ==
* Zero-cost exception handling: {{bug|1065089}}
* Extend asm.js to allow proper tail calls for all return types and do the tail-call optimization
* Extend asm.js to allow proper tail calls for all return types and do the tail-call optimization
* Effectively support 'goto' (even computed 'goto') by formalizing a pattern of while+switch that gets compiled as if it was goto
* Effectively support 'goto' (even computed 'goto') by formalizing a pattern of while+switch that gets compiled as if it was goto
Line 46: Line 44:
* Print warning on out-of-bounds heap access: {{bug|879891}}
* Print warning on out-of-bounds heap access: {{bug|879891}}
* Add about:config option to check for and emit warning on unaligned heap access
* Add about:config option to check for and emit warning on unaligned heap access
* Fix asm.js caching browser interop ({{bug|1047098}}, {{bug|1047105}}


== Current asm.js spec bugs ==
== Current asm.js spec bugs ==
Confirmed users
367

edits