nanbug.js 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function AsmModule(stdlib,foreign,buffer) {
  6. "use asm";
  7. var HEAP32 =new stdlib.Float32Array(buffer);
  8. var fround = stdlib.Math.fround;
  9. var c = foreign.fun2;
  10. function f() {
  11. var a = fround(0);
  12. var b = 0.;
  13. a = fround(HEAP32[0]);
  14. b = +a;
  15. c(b);
  16. return (~~b)|0;
  17. }
  18. return {
  19. f : f
  20. };
  21. }
  22. var global = {Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,Infinity:Infinity, NaN:NaN}
  23. var env = {fun1:function(x1,x2,x3,x4,x5,x6,x7,x8){print(x1,x2,x3,x4,x5,x6,x7,x8);}, fun2:function(x){print(x);},x:155,i2:658,d1:68.25,d2:3.14156,f1:48.1523,f2:14896.2514}
  24. var buffer = new ArrayBuffer(1<<20);
  25. var view = new Int32Array(buffer);
  26. view[0] = 0xffffffff
  27. var asmModule = new AsmModule(global,env,buffer);
  28. print(asmModule.f(Number.MAX_VALUE));
  29. print(asmModule.f(Number.MAX_VALUE));