- 
    
Bug
 - 
    Resolution: Fixed
 - 
    
  Not Evaluated                     
     - 
    2.1.0
 - 
    None
 - 
    Debian GNU/Linux sid i386
 
- 
        
 - 
        d8c97a5f0 (2.1)
 
Now QuickJS builds fine on x86 (32-bit), but there is a problem with floats. Consider the following test C program:
#include <stdio.h> #include "quickjs.h" int main() { JSContext *ctx = NULL; /* unused anyway */ double d = 1.2; JSValue val = JS_NewFloat64Impl(ctx, d); double d2 = JS_VALUE_GET_FLOAT64(val); printf("d2 = %f\n", d2); printf("tag = %d\n", JS_VALUE_GET_TAG(val)); printf("expected = %d\n", JS_TAG_FLOAT64); return 0; }
I put it to src/shared/quickjs directory and compile using gcc test.c -o test.
Output on x86_64:
$ ./test d2 = 1.200000 tag = 7 expected = 7
Output on x86:
$ ./test d2 = 1.200000 tag = -1074056409 expected = 7
As you can see, the tag is wrong, which makes some tests fail.