So, ReactOS 0.4.15 has been released, and with it there came support for a few new Internet browsers, including the Eclipse Lun3r 33.3.3a1 browser. That's probably the most advanced browser that runs on ReactOS 0.4.15.
Now, when I try to open my Analog Clock in AEC in it, it doesn't work. And, when I open the browser console, I receive this error message:
Which is expected. I didn't expect Eclipse Lun3r to support advanced WebAssembly features such as WebAssembly global variables.
However, when I tried to run my implementation of the Hurwitz'es Algorithm in AEC, to my amazement, it worked:
How is that possible? My Hurwitz'es Algorithm implementation uses WebAssembly global variables, just not from JavaScript, but from WebAssembly itself. For example, at the 22nd line of the generated WebAssembly code, we have this:
(global $stack_pointer (mut i32) (i32.const 0)) ;;We can declare stack pointer only here because,
;;in WebAssembly, "imports must occur before all
;;non-import definitions".
And the assembly code is full of instructions such as this one:
(global.set $stack_pointer ;;Allocate the space for the arguments of that function on the system stack.
(i32.add
(global.get $stack_pointer)
(i32.const 2)
)
)
And so on. So how can that possibly work in Eclipse Lun3r?