Synchronous XHR loading policies changed in new browsers breaking the current emulator on them, noted in readme.

This commit is contained in:
Anselm Levskaya 2013-09-15 20:16:18 -07:00
parent 3bf3d7322a
commit 0f6b11c78e

View File

@ -13,14 +13,15 @@ redacted version of the code here, with permission of Mr. Bellard.
Note that there is a much more readable, ground-up project to build an open-source 386-style emulator in javascript called [jslm32][3]. Note that there is a much more readable, ground-up project to build an open-source 386-style emulator in javascript called [jslm32][3].
### Status ### Status
It's still a dense code base, it's an emulator of a rather
The current codebase won't run on recent webkit browsers due to a breaking change in the way Synchronous [XHR][4] requests are handled. The binary loading routines need to be rewritten to be asynchronous, not terribly hard but annoying enough that I haven't just done it. (Fabrice's original online version has been patched and runs fine.)
jslinux-deobfuscated is still a dense code base, it's an emulator of a rather
complicated architecture, after all. However this version is nowhere complicated architecture, after all. However this version is nowhere
near so incomprehensible as the original. Nearly all of the global variables near so incomprehensible as the original. Nearly all of the global variables
and function names have been named somewhat sensibly. Many comments and function names have been named somewhat sensibly. Many comments
have been added. have been added.
It seems to run identically to the original.
The core opcode execution loop has been autocommented to indicate what The core opcode execution loop has been autocommented to indicate what
instruction operation the opcode refers to. instruction operation the opcode refers to.
@ -57,3 +58,4 @@ Some other helpful references for understanding what's going on:
[1]: http://bellard.org/jslinux/tech.html [1]: http://bellard.org/jslinux/tech.html
[2]: http://jsshaper.org [2]: http://jsshaper.org
[3]: https://github.com/ubercomp/jslm32 [3]: https://github.com/ubercomp/jslm32
[4]: https://bugs.webkit.org/show_bug.cgi?id=72154