Hi All, For the past few months i've been porting webkit to JavaScript using emscripten.
You can find a working demo (Firefox only) here: http://trevorlinton.github.io/webkit.js/demo.html You can find the project sources (compile settings are in common.gypi) here: http://github.com/trevorlinton/webkit.js I have a few issues with Emscripten I haven't been able to work around: 1. It seems SDL with cairo inverts the red and green channels, this from what I can see in the library code doesn't correctly handle RGBA masks passed in to SDL_CreateRGBSurface. 2. Chrome/Safari freeze for 30-90 seconds to what I can only determine is garbage collection. 3. Firefox fails to validate the ASM, I assume this is due to a globally initialized variable but can't seem to track down where.. 4. Emscripten warns of undefined symbols to 'emscripten_gl<legacyfunction>' even though no GL code exists.. 5. Using SDL as a worker fails since it still tries to use a native canvas object in a Worker, rather than proxying it up to the host page. I had to create some very harsh shims to make this work. 6. Is there anyway memory can be initialized with a Uint32 rather than Uint8? I'm my tests this would cut down my code size of webkit.js from 19MB to 15MB!!! 7. Closure compilers ran on it actually produce INVALID javascript, I get a syntax error of '--/a' which is nonsensical and fairly surprising. 8. There's no seemingly easy way to compress/inflate/deflate code using XZ, this would be hugely helpful as it cuts the JS code down to 3.5MB! I realize this will happen on a server level but would be VERY helpful. 9. Outlining my code does absolutely nothing, no matter what value I set in the compiler. Any ideas why this would be? 10. If you review common.gypi on the project to see the debug/release compiler settings is there anything I can do to increase the speed/code size? For reference i'm using 1.13.0 on MacOSX. -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
