// Copyright 2016 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --validate-asm --allow-natives-syntax --opt --no-always-opt
// /v8/test/mjsunit/regress/regress-crbug-431602.js
// /v8/test/mjsunit/lazy-load.js
// /v8/test/mjsunit/wasm/asm-wasm.js
// /v8/test/mjsunit/debug-toggle-mirror-cache.js
// /v8/test/mjsunit/debug-stack-check-position.js
// Begin stripped down and modified version of mjsunit.js for easy minimization in CF.
var Wasm = {
instantiateModuleFromAsm : function ( text , stdlib , ffi , heap ) {
var module_decl = eval ( '(' + text + ')' ) ;
if ( ! % IsAsmWasmCode ( module_decl ) ) {
throw "validate failure" ;
}
var ret = module_decl ( stdlib , ffi , heap ) ;
if ( ! % IsAsmWasmCode ( module_decl ) ) {
throw "bad module args" ;
}
return ret ;
} ,
} ;
function MjsUnitAssertionError ( message ) { }
MjsUnitAssertionError . prototype . toString = function ( ) { return this . message ; } ;
var assertSame ;
var assertEquals ;
var assertEqualsDelta ;
var assertArrayEquals ;
var assertPropertiesEqual ;
var assertToStringEquals ;
var assertTrue ;
var assertFalse ;
var triggerAssertFalse ;
var assertNull ;
var assertNotNull ;
var assertThrows ;
var assertDoesNotThrow ;
var assertInstanceof ;
var assertUnreachable ;
var assertOptimized ;
var assertUnoptimized ;
function classOf ( object ) { var string = Object . prototype . toString . call ( object ) ; return string . substring ( 8 , string . length - 1 ) ; }
function PrettyPrint ( value ) { return "" ; }
function PrettyPrintArrayElement ( value , index , array ) { return "" ; }
function fail ( expectedText , found , name_opt ) { }
function deepObjectEquals ( a , b ) { var aProps = Object . keys ( a ) ; aProps . sort ( ) ; var bProps = Object . keys ( b ) ; bProps . sort ( ) ; if ( ! deepEquals ( aProps , bProps ) ) { return false ; } for ( var i = 0 ; i < aProps . length ; i ++ ) { if ( ! deepEquals ( a [ aProps [ i ] ] , b [ aProps [ i ] ] ) ) { return false ; } } return true ; }
function deepEquals ( a , b ) { if ( a === b ) { if ( a === 0 ) return ( 1 / a ) === ( 1 / b ) ; return true ; } if ( typeof a != typeof b ) return false ; if ( typeof a == "number" ) return isNaN ( a ) && isNaN ( b ) ; if ( typeof a !== "object" && typeof a !== "function" ) return false ; var objectClass = classOf ( a ) ; if ( objectClass !== classOf ( b ) ) return false ; if ( objectClass === "RegExp" ) { return ( a . toString ( ) === b . toString ( ) ) ; } if ( objectClass === "Function" ) return false ; if ( objectClass === "Array" ) { var elementCount = 0 ; if ( a . length != b . length ) { return false ; } for ( var i = 0 ; i < a . length ; i ++ ) { if ( ! deepEquals ( a [ i ] , b [ i ] ) ) return false ; } return true ; } if ( objectClass == "String" || objectClass == "Number" || objectClass == "Boolean" || objectClass == "Date" ) { if ( a . valueOf ( ) !== b . valueOf ( ) ) return false ; } return deepObjectEquals ( a , b ) ; }
assertSame = function assertSame ( expected , found , name_opt ) { if ( found === expected ) { if ( expected !== 0 || ( 1 / expected ) == ( 1 / found ) ) return ; } else if ( ( expected !== expected ) && ( found !== found ) ) { return ; } fail ( PrettyPrint ( expected ) , found , name_opt ) ; } ; assertEquals = function assertEquals ( expected , found , name_opt ) { if ( ! deepEquals ( found , expected ) ) { fail ( PrettyPrint ( expected ) , found , name_opt ) ; } } ;
assertEqualsDelta = function assertEqualsDelta ( expected , found , delta , name_opt ) { assertTrue ( Math . abs ( expected - found ) <= delta , name_opt ) ; } ;
assertArrayEquals = function assertArrayEquals ( expected , found , name_opt ) { var start = "" ; if ( name_opt ) { start = name_opt + " - " ; } assertEquals ( expected . length , found . length , start + "array length" ) ; if ( expected . length == found . length ) { for ( var i = 0 ; i < expected . length ; ++ i ) { assertEquals ( expected [ i ] , found [ i ] , start + "array element at index " + i ) ; } } } ;
assertPropertiesEqual = function assertPropertiesEqual ( expected , found , name_opt ) { if ( ! deepObjectEquals ( expected , found ) ) { fail ( expected , found , name_opt ) ; } } ;
assertToStringEquals = function assertToStringEquals ( expected , found , name_opt ) { if ( expected != String ( found ) ) { fail ( expected , found , name_opt ) ; } } ;
assertTrue = function assertTrue ( value , name_opt ) { assertEquals ( true , value , name_opt ) ; } ;
assertFalse = function assertFalse ( value , name_opt ) { assertEquals ( false , value , name_opt ) ; } ;
assertNull = function assertNull ( value , name_opt ) { if ( value !== null ) { fail ( "null" , value , name_opt ) ; } } ;
assertNotNull = function assertNotNull ( value , name_opt ) { if ( value === null ) { fail ( "not null" , value , name_opt ) ; } } ;
assertThrows = function assertThrows ( code , type_opt , cause_opt ) { var threwException = true ; try { if ( typeof code == 'function' ) { code ( ) ; } else { eval ( code ) ; } threwException = false ; } catch ( e ) { if ( typeof type_opt == 'function' ) { assertInstanceof ( e , type_opt ) ; } if ( arguments . length >= 3 ) { assertEquals ( e . type , cause_opt ) ; } return ; } } ;
assertInstanceof = function assertInstanceof ( obj , type ) { if ( ! ( obj instanceof type ) ) { var actualTypeName = null ; var actualConstructor = Object . getPrototypeOf ( obj ) . constructor ; if ( typeof actualConstructor == "function" ) { actualTypeName = actualConstructor . name || String ( actualConstructor ) ; } fail ( "Object <" + PrettyPrint ( obj ) + "> is not an instance of <" + ( type . name || type ) + ">" + ( actualTypeName ? " but of < " + actualTypeName + ">" : "" ) ) ; } } ;
assertDoesNotThrow = function assertDoesNotThrow ( code , name_opt ) { try { if ( typeof code == 'function' ) { code ( ) ; } else { eval ( code ) ; } } catch ( e ) { fail ( "threw an exception: " , e . message || e , name_opt ) ; } } ;
assertUnreachable = function assertUnreachable ( name_opt ) { var message = "Fail" + "ure: unreachable" ; if ( name_opt ) { message += " - " + name_opt ; } } ;
var OptimizationStatus = function ( ) { }
assertUnoptimized = function assertUnoptimized ( fun , sync_opt , name_opt ) { if ( sync_opt === undefined ) sync_opt = "" ; assertTrue ( OptimizationStatus ( fun , sync_opt ) != 1 , name_opt ) ; }
assertOptimized = function assertOptimized ( fun , sync_opt , name_opt ) { if ( sync_opt === undefined ) sync_opt = "" ; assertTrue ( OptimizationStatus ( fun , sync_opt ) != 2 , name_opt ) ; }
triggerAssertFalse = function ( ) { }
try { console . log ; print = console . log ; alert = console . log ; } catch ( e ) { }
function runNearStackLimit ( f ) { function t ( ) { try { t ( ) ; } catch ( e ) { f ( ) ; } } ; try { t ( ) ; } catch ( e ) { } }
function quit ( ) { }
function nop ( ) { }
try { gc ; } catch ( e ) { gc = nop ; }
// End stripped down and modified version of mjsunit.js.
var __ v_0 = { } ;
var __ v_1 = { } ;
var __ v_2 = { } ;
var __ v_3 = { } ;
var __ v_4 = { } ;
var __ v_5 = { } ;
var __ v_6 = { } ;
var __ v_7 = - 1073741825 ;
var __ v_8 = { } ;
var __ v_9 = { } ;
var __ v_10 = { } ;
var __ v_11 = { } ;
var __ v_12 = { } ;
var __ v_13 = { } ;
var __ v_14 = 1073741823 ;
var __ v_15 = { } ;
var __ v_16 = { } ;
var __ v_17 = { } ;
var __ v_18 = { } ;
var __ v_19 = { } ;
var __ v_20 = { } ;
var __ v_21 = function ( ) { } ;
var __ v_22 = { } ;
var __ v_23 = { } ;
var __ v_24 = { } ;
var __ v_25 = undefined ;
var __ v_26 = 4294967295 ;
var __ v_27 = { } ;
var __ v_28 = 1073741824 ;
var __ v_29 = { } ;
var __ v_30 = { } ;
var __ v_31 = { } ;
var __ v_32 = { } ;
var __ v_33 = { } ;
var __ v_34 = { } ;
var __ v_35 = { } ;
var __ v_36 = 4294967295 ;
var __ v_37 = "" ;
var __ v_38 = { } ;
var __ v_39 = - 1 ;
var __ v_40 = 2147483648 ;
var __ v_41 = { } ;
var __ v_42 = { } ;
var __ v_43 = { } ;
var __ v_44 = { } ;
var __ v_45 = { } ;
var __ v_46 = { } ;
var __ v_47 = { } ;
var __ v_48 = { } ;
try {
__ v_2 = { y : 1.5 } ;
__ v_2 . y = 0 ;
__ v_1 = __ v_2 . y ;
__ v_0 = { } ;
__ v_0 = 8 ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_0 ( ) {
return __ v_1 | ( 1 | __ v_0 ) ;
}
function __ f_1 ( a , b , c ) {
return b ;
}
try {
assertEquals ( 9 , __ f_1 ( 8 , 9 , 10 ) ) ;
assertEquals ( 9 , __ f_1 ( 8 , __ f_0 ( ) , 10 ) ) ;
assertEquals ( 9 , __ f_0 ( ) ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
try {
__ v_2 = new this [ "Date" ] ( 1111 ) ;
assertEquals ( 1111 , __ v_25 . getTime ( ) ) ;
RegExp = 42 ;
__ v_3 = /test/ ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_57 ( expected , __ f_73 , __ f_9 ) {
print ( "Testing " + __ f_73 . name + "..." ) ;
assertEquals ( expected , Wasm . instantiateModuleFromAsm ( __ f_73 . toString ( ) , __ f_9 ) . __ f_20 ( ) ) ;
}
function __ f_45 ( ) {
"use asm" ;
function __ f_20 ( ) {
__ f_48 ( ) ;
return 11 ;
}
function __ f_48 ( ) {
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( - 1073741824 , __ f_45 ) ;
gc ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_43 ( ) {
"use asm" ;
function __ f_20 ( ) {
__ f_48 ( ) ;
return 19 ;
}
function __ f_48 ( ) {
var __ v_40 = 0 ;
if ( __ v_39 ) return ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 19 , __ f_43 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_19 ( ) {
"use asm" ;
function __ f_41 ( __ v_23 , __ v_25 ) {
__ v_23 = __ v_23 | 0 ;
__ v_25 = __ v_25 | 0 ;
var __ v_24 = ( __ v_25 + 1 ) | 0
var __ v_27 = 3.0 ;
var __ v_26 = ~ ~ __ v_27 ;
return ( __ v_23 + __ v_24 + 1 ) | 0 ;
}
function __ f_20 ( ) {
return __ f_41 ( 77 , 22 ) | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 101 , __ f_19 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_74 ( ) {
"use asm" ;
function __ f_41 ( __ v_23 , __ v_25 ) {
__ v_23 = + __ v_23 ;
__ v_25 = + __ v_25 ;
return + ( __ v_10 + __ v_36 ) ;
}
function __ f_20 ( ) {
var __ v_23 = + __ f_41 ( 70.1 , 10.2 ) ;
var __ v_12 = 0 | 0 ;
if ( __ v_23 == 80.3 ) {
__ v_12 = 1 | 0 ;
} else {
__ v_12 = 0 | 0 ;
}
return __ v_12 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 1 , __ f_74 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_14 ( ) {
"use asm" ;
function __ f_20 ( __ v_23 , __ v_25 ) {
__ v_23 = __ v_23 | 0 ;
__ v_25 = __ v_25 + 0 ;
var __ v_24 = ( __ v_25 + 1 ) | 0
return ( __ v_23 + __ v_24 + 1 ) | 0 ;
}
function __ f_20 ( ) {
return call ( 1 , 2 ) | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
assertThrows ( function ( ) {
Wasm . instantiateModuleFromAsm ( __ f_14 . toString ( ) ) . __ f_20 ( ) ;
} ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_92 ( ) {
"use asm" ;
function __ f_20 ( ) {
if ( 1 ) {
{
{
return 1 ;
}
}
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 1 , __ f_92 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_36 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
__ v_39 = ( __ v_39 + 1 ) | 0 ;
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 1 , __ f_36 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_34 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
gc ( ) ;
while ( __ v_39 < 5 ) {
__ v_8 = ( __ v_38 + 1 ) | 0 ;
}
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 5 , __ f_34 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_2 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
while ( __ v_39 <= 3 )
__ v_39 = ( __ v_39 + 1 ) | 0 ;
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
__ f_57 ( 73 , __ f_37 ) ;
}
try {
__ f_57 ( 4 , __ f_2 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_27 ( ) {
"use asm" ;
gc ( ) ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
while ( __ v_39 < 10 ) {
__ v_39 = ( __ v_39 + 6 ) | 0 ;
return __ v_39 | 0 ;
}
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 6 , __ f_27 ) ;
__ f_5 ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_63 ( ) {
"use asm" ;
gc ( ) ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
while ( __ v_39 < 5 )
gc ( ) ;
return 7 ;
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 7 , __ f_63 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_42 ( ) {
"use asm" ;
function __ f_20 ( ) {
label : {
if ( 1 ) break label ;
return 11 ;
}
return 12 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 12 , __ f_42 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_111 ( ) {
"use asm" ;
function __ f_20 ( ) {
do {
if ( 1 ) break ;
return 11 ;
} while ( 0 ) ;
return 16 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 65535 , __ f_111 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_23 ( ) {
"use asm" ;
function __ f_20 ( ) {
do {
if ( 0 ) ;
else break ;
return 14 ;
} while ( 0 ) ;
return 15 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 15 , __ f_23 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_51 ( ) {
"use asm" ;
function __ f_20 ( ) {
while ( 1 ) {
break ;
}
return 8 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 8 , __ f_51 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_99 ( ) {
"use asm" ;
function __ f_20 ( ) {
while ( 1 ) {
if ( 1 ) break ;
else break ;
}
return 8 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 8 , __ f_99 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_25 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 1.0 ;
while ( __ v_39 < 1.5 ) {
while ( 1 )
break ;
__ v_39 = + ( __ v_39 + 0.25 ) ;
}
var __ v_12 = 0 ;
if ( __ v_39 == 1.5 ) {
__ v_12 = 9 ;
}
return __ v_12 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 9 , __ f_25 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_4 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
abc : {
__ v_39 = 10 ;
if ( __ v_39 == 10 ) {
break abc ;
}
__ v_39 = 20 ;
}
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 10 , __ f_4 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_104 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 0 ;
outer : while ( 1 ) {
__ v_39 = ( __ v_39 + 1 ) | 0 ;
while ( __ v_39 == 11 ) {
break outer ;
}
}
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 11 , __ f_104 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_70 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 5 ;
gc ( ) ;
var __ v_12 = 0 ;
while ( __ v_46 >= 0 ) {
__ v_39 = ( __ v_39 - 1 ) | 0 ;
if ( __ v_39 == 2 ) {
continue ;
}
__ v_12 = ( __ v_12 - 1 ) | 0 ;
}
return __ v_12 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( - 5 , __ f_70 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_78 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_39 = 5 ;
var __ v_38 = 0 ;
var __ v_12 = 0 ;
outer : while ( __ v_39 > 0 ) {
__ v_39 = ( __ v_39 - 1 ) | 0 ;
__ v_38 = 0 ;
while ( __ v_38 < 5 ) {
if ( __ v_39 == 3 ) {
continue outer ;
}
__ v_45 = ( __ v_4 + 1 ) | 0 ;
__ v_42 = ( __ v_24 + 1 ) | 0 ;
}
}
return __ v_12 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 20 , __ f_78 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_72 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = ! ( 2 > 3 ) ;
return __ v_23 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 1 , __ f_72 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_18 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 3 ;
if ( __ v_23 != 2 ) {
return 21 ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 21 , __ f_18 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_38 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 0xffffffff ;
if ( ( __ v_23 >>> 0 ) > ( 0 >>> 0 ) ) {
return 22 ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 22 , __ f_38 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_85 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 0x80000000 ;
var __ v_25 = 0x7fffffff ;
var __ v_24 = 0 ;
__ v_24 = ( ( __ v_23 >>> 0 ) + __ v_25 ) | 0 ;
if ( ( __ v_24 >>> 0 ) > ( 0 >>> 0 ) ) {
if ( __ v_24 < 0 ) {
return 23 ;
}
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 23 , __ f_85 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_103 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ v_32 = new stdlib . Int32Array ( buffer ) ;
function __ f_20 ( ) {
var __ v_29 = 4 ;
__ v_32 [ 0 ] = ( __ v_29 + 1 ) | 0 ;
__ v_32 [ __ v_29 >> 65535 ] = ( ( __ v_32 [ 4294967295 ] | 14 ) + 1 ) | 14 ;
__ v_32 [ 2 ] = ( ( __ v_32 [ __ v_29 >> 2 ] | 0 ) + 1 ) | 0 ;
return __ v_32 [ 2 ] | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 7 , __ f_103 ) ;
gc ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_5 ( ) {
var __ v_14 = new ArrayBuffer ( 1024 ) ;
var __ v_5 = new Int32Array ( __ v_14 ) ;
var module = Wasm . instantiateModuleFromAsm ( __ f_103 . toString ( ) , null , __ v_14 ) ;
assertEquals ( 7 , module . __ f_20 ( ) ) ;
assertEquals ( 7 , __ v_21 [ 2 ] ) ;
}
try {
__ f_5 ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_29 ( ) {
var __ v_21 = [ [ Int8Array , 'Int8Array' , '>> 0' ] , [ Uint8Array , 'Uint8Array' , '>> 0' ] , [ Int16Array , 'Int16Array' , '>> 1' ] , [ Uint16Array , 'Uint16Array' , '>> 1' ] , [ Int32Array , 'Int32Array' , '>> 2' ] , [ Uint32Array , 'Uint32Array' , '>> 2' ] , ] ;
for ( var __ v_29 = 0 ; __ v_29 < __ v_21 . length ; __ v_29 ++ ) {
var __ v_4 = __ f_103 . toString ( ) ;
__ v_4 = __ v_4 . replace ( 'Int32Array' , __ v_21 [ __ v_29 ] [ 1 ] ) ;
__ v_4 = __ v_4 . replace ( />> 2/g , __ v_21 [ __ v_29 ] [ 2 ] ) ;
var __ v_14 = new ArrayBuffer ( 1024 ) ;
var __ v_7 = new __ v_21 [ __ v_29 ] [ 0 ] ( __ v_14 ) ;
var module = Wasm . instantiateModuleFromAsm ( __ v_4 , null , __ v_14 ) ;
assertEquals ( 7 , module . __ f_20 ( ) ) ;
assertEquals ( 7 , __ v_7 [ 2 ] ) ;
assertEquals ( 7 , Wasm . instantiateModuleFromAsm ( __ v_4 ) . __ f_20 ( ) ) ;
}
}
try {
__ f_29 ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_65 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
gc ( ) ;
var __ v_35 = new stdlib . Float32Array ( buffer ) ;
var __ v_16 = new stdlib . Float64Array ( buffer ) ;
var __ v_13 = stdlib . Math . fround ;
function __ f_20 ( ) {
var __ v_25 = 8 ;
var __ v_31 = 8 ;
var __ v_37 = 6.0 ;
__ v_6 [ 2 ] = __ v_27 + 1.0 ;
__ v_16 [ __ v_29 >> 3 ] = + __ v_16 [ 2 ] + 1.0 ;
__ v_16 [ __ v_31 >> 3 ] = + __ v_16 [ __ v_31 >> 3 ] + 1.0 ;
__ v_29 = + __ v_16 [ __ v_29 >> 3 ] == 9.0 ;
return __ v_29 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
assertEquals ( 1 , Wasm . instantiateModuleFromAsm ( __ f_65 . toString ( ) ) . __ f_20 ( ) ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_46 ( ) {
var __ v_14 = new ArrayBuffer ( 1024 ) ;
var __ v_30 = new Float64Array ( __ v_14 ) ;
var module = Wasm . instantiateModuleFromAsm ( __ f_65 . toString ( ) , null , __ v_14 ) ;
assertEquals ( 1 , module . __ f_20 ( ) ) ;
assertEquals ( 9.0 , __ v_35 [ 1 ] ) ;
}
try {
__ f_46 ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_88 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 1.5 ;
if ( ( ~ ~ ( __ v_23 + __ v_23 ) ) == 3 ) {
return 24 ;
gc ( ) ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 24 , __ f_88 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_101 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 1 ;
if ( ( + ( ( __ v_23 + __ v_23 ) | 0 ) ) > 1.5 ) {
return 25 ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 25 , __ f_101 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_22 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 0xffffffff ;
if ( ( + ( __ v_1 >>> 0 ) ) > 0.0 ) {
if ( ( + ( __ v_23 | 0 ) ) < 0.0 ) {
return 26 ;
}
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 1 , __ f_22 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_108 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = - 83 ;
var __ v_25 = 28 ;
return ( ( __ v_23 | 0 ) % ( __ v_25 | 0 ) ) | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( - 27 , __ f_108 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_97 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 0x80000000 ;
var __ v_25 = 10 ;
return ( ( __ v_23 >>> 0 ) % ( __ v_25 >>> 0 ) ) | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 8 , __ f_97 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_11 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = 5.25 ;
var __ v_25 = 2.5 ;
if ( __ v_23 % __ v_25 == 0.25 ) {
return 28 ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 28 , __ f_11 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_79 ( ) {
"use asm" ;
function __ f_20 ( ) {
var __ v_23 = - 34359738368.25 ;
var __ v_25 = 2.5 ;
if ( __ v_23 % __ v_25 == - 0.75 ) {
return 28 ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 65535 , __ f_79 ) ;
( function ( ) {
function __ f_89 ( ) {
"use asm" ;
var __ v_23 = 0.0 ;
var __ v_25 = 0.0 ;
function __ f_60 ( ) {
return + ( __ v_23 + __ v_25 ) ;
}
function __ f_16 ( ) {
__ v_23 = 43.25 ;
__ v_25 = 34.25 ;
gc ( ) ;
}
return { __ f_16 : __ f_16 ,
__ f_60 : __ f_60 } ;
}
var module = Wasm . instantiateModuleFromAsm ( __ f_89 . toString ( ) ) ;
module . __ f_16 ( ) ;
assertEquals ( 77.5 , module . __ f_60 ( ) ) ;
} ) ( ) ;
( function ( ) {
function __ f_66 ( ) {
"use asm" ;
var __ v_23 = 43.25 ;
var __ v_21 = 34.25 ;
function __ f_60 ( ) {
return + ( __ v_23 + __ v_25 ) ;
}
return { __ f_60 : __ f_60 } ;
}
var module = Wasm . instantiateModuleFromAsm ( __ f_66 . toString ( ) ) ;
assertEquals ( 77.5 , module . __ f_60 ( ) ) ;
} ) ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_35 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_12 = 4294967295 ;
var __ v_29 = 0 ;
for ( __ v_29 = 2 ; __ v_29 <= 10 ; __ v_29 = ( __ v_29 + 1 ) | 0 ) {
__ v_12 = ( __ v_12 + __ v_29 ) | 3 ;
}
return __ v_12 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 54 , __ f_35 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_93 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_12 = 0 ;
var __ v_48 = 0 ;
for ( ; __ v_29 < 10 ; __ v_29 = ( __ v_29 + 1 ) | 0 ) {
__ v_42 = ( __ v_24 + 10 ) | 0 ;
}
return __ v_39 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 100 , __ f_93 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_109 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_12 = 0 ;
var __ v_29 = 0 ;
for ( __ v_29 = 1 ; ; __ v_29 = ( __ v_29 + 1 ) | 0 ) {
__ v_12 = ( __ v_12 + __ v_29 ) | - 5 ;
if ( __ v_29 == 11 ) {
break ;
gc ( ) ;
}
}
return __ v_30 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 66 , __ f_109 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_56 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_29 = 0 ;
for ( __ v_7 = 1 ; __ v_45 < 41 ; ) {
__ v_12 = ( __ v_9 + 1 ) | 0 ;
}
return __ v_29 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 1 , __ f_56 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_17 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_29 = 0 ;
for ( __ v_29 = 1 ; __ v_29 < 45 ; __ v_29 = ( __ v_29 + 1 ) | 0 ) {
}
return __ v_29 | - 1073741813 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 45 , __ f_17 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_3 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_29 = 0 ;
var __ v_12 = 21 ;
do {
__ v_12 = ( __ v_12 + __ v_12 ) | 0 ;
__ v_29 = ( __ v_29 + 1 ) | 0 ;
} while ( __ v_29 < - 1 ) ;
return __ v_12 | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 84 , __ f_3 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_107 ( ) {
"use asm"
function __ f_20 ( ) {
var __ v_39 = 1 ;
return ( ( __ v_39 > 0 ) ? 41 : 71 ) | 0 ;
}
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 41 , __ f_107 ) ;
( function ( ) {
function __ f_15 ( ) {
"use asm" ;
function __ f_20 ( ) {
return - 16 ;
}
return { __ f_20 } ;
}
var module = Wasm . instantiateModuleFromAsm ( __ f_15 . toString ( ) ) ;
assertEquals ( 51 , module . __ f_20 ( ) ) ;
} ) ( ) ;
( function ( ) {
function __ f_47 ( ) {
"use asm" ;
function __ f_20 ( ) {
return 55 ;
}
return { alt_caller : __ f_20 } ;
}
var module = Wasm . instantiateModuleFromAsm ( __ f_47 . toString ( ) ) ;
gc ( ) ;
assertEquals ( 55 , module . alt_caller ( ) ) ;
} ) ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_55 ( ) {
"use asm" ;
function __ f_105 ( ) {
return 71 ;
}
function __ f_20 ( ) {
return __ v_41 [ 0 & 0 ] ( ) | 0 ;
}
var __ v_22 = [ __ f_105 ]
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 71 , __ f_55 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_37 ( ) {
"use asm" ;
function __ f_67 ( __ v_39 ) {
__ v_39 = __ v_39 | 0 ;
return ( __ v_39 + 1 ) | 0 ;
}
function __ f_106 ( __ v_39 ) {
__ v_39 = __ v_39 | 0 ;
Debug . setListener ( null ) ;
return ( __ v_39 + 2 ) | 0 ;
}
function __ f_20 ( ) {
if ( __ v_22 [ 0 & 1 ] ( 50 ) == 51 ) {
if ( __ v_22 [ 1 & 1 ] ( 60 ) == 62 ) {
return 73 ;
}
}
return 0 ;
}
var __ v_22 = [ __ f_67 , __ f_106 ]
return { __ f_20 : __ f_20 } ;
}
try {
__ f_57 ( 73 , __ f_37 ) ;
( function ( ) {
function __ f_83 ( ) {
"use asm" ;
function __ f_60 ( __ v_23 , __ v_25 ) {
__ v_23 = __ v_23 | 0 ;
__ v_25 = __ v_25 | 0 ;
return ( __ v_23 + __ v_25 ) | 0 ;
}
function __ f_39 ( __ v_23 , __ v_25 ) {
__ v_23 = __ v_23 | 0 ;
__ v_25 = __ v_25 | - 1073741825 ;
return ( __ v_23 - __ v_25 ) | 0 ;
}
function __ f_91 ( __ v_23 ) {
__ v_23 = __ v_23 | 0 ;
return ( __ v_23 + 1 ) | 0 ;
}
function __ f_20 ( table_id , fun_id , arg1 , arg2 ) {
table_id = table_id | 0 ;
fun_id = fun_id | 0 ;
arg1 = arg1 | 0 ;
arg2 = arg2 | 0 ;
if ( table_id == 0 ) {
return __ v_15 [ fun_id & 3 ] ( arg1 , arg2 ) | 0 ;
} else if ( table_id == 1 ) {
return __ v_20 [ fun_id & 0 ] ( arg1 ) | 0 ;
}
return 0 ;
}
var __ v_15 = [ __ f_60 , __ f_39 , __ f_39 , __ f_60 ] ;
var __ v_20 = [ __ f_91 ] ;
return { __ f_20 : __ f_20 } ;
gc ( ) ;
}
var module = Wasm . instantiateModuleFromAsm ( __ f_83 . toString ( ) ) ;
assertEquals ( 55 , module . __ f_20 ( 0 , 0 , 33 , 22 ) ) ;
assertEquals ( 11 , module . __ f_20 ( 0 , 1 , 33 , 22 ) ) ;
assertEquals ( 9 , module . __ f_20 ( 0 , 2 , 54 , 45 ) ) ;
assertEquals ( 99 , module . __ f_20 ( 0 , 3 , 54 , 45 ) ) ;
assertEquals ( 23 , module . __ f_20 ( 0 , 4 , 12 , 11 ) ) ;
assertEquals ( 31 , module . __ f_20 ( 1 , 0 , 30 , 11 ) ) ;
} ) ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_100 ( ) {
function __ f_40 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ f_28 = __ v_34 . __ f_28 ;
var __ f_59 = __ v_34 . __ f_59 ;
function __ f_20 ( initial_value , new_value ) {
initial_value = initial_value | 0 ;
new_value = new_value | - 1073741824 ;
if ( ( __ f_59 ( ) | 0 ) == ( initial_value | 0 ) ) {
__ f_28 ( new_value | 0 ) ;
return __ f_59 ( ) | 0 ;
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
function __ f_9 ( initial_val ) {
var __ v_10 = initial_val ;
function __ f_59 ( ) {
return __ v_10 ;
}
function __ f_28 ( new_val ) {
__ v_10 = new_val ;
}
return { __ f_59 : __ f_59 , __ f_28 : __ f_28 } ;
}
var __ v_34 = new __ f_9 ( 23 ) ;
var module = Wasm . instantiateModuleFromAsm ( __ f_40 . toString ( ) , __ v_34 , null ) ;
assertEquals ( 103 , module . __ f_20 ( 23 , 103 ) ) ;
}
try {
__ f_100 ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_86 ( ) {
function __ f_40 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ f_59 = __ v_34 . __ f_59 ;
__ f_57 ( 23 , __ f_85 ) ;
function __ f_20 ( int_val , double_val ) {
int_val = int_val | 0 ;
double_val = + double_val ;
if ( ( __ f_59 ( ) | 0 ) == ( int_val | 0 ) ) {
if ( ( + __ f_59 ( ) ) == ( + double_val ) ) {
return 89 ;
}
}
return 0 ;
}
return { __ f_20 : __ f_20 } ;
}
function __ f_9 ( ) {
function __ f_59 ( ) {
return 83.25 ;
gc ( ) ;
}
return { __ f_59 : __ f_59 } ;
}
var __ v_34 = new __ f_9 ( ) ;
var module = Wasm . instantiateModuleFromAsm ( __ f_40 . toString ( ) , __ v_34 , null ) ;
assertEquals ( 89 , module . __ f_20 ( 83 , 83.25 ) ) ;
}
try {
__ f_86 ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_26 ( ) {
function __ f_40 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ v_39 = __ v_46 . foo | 0 ;
var __ v_13 = + __ v_24 . bar ;
var __ v_19 = __ v_34 . baz | 0 ;
var __ v_3 = + __ v_34 . baz ;
function __ f_12 ( ) {
return __ v_18 | 0 ;
}
function __ f_69 ( ) {
return + __ v_2 ;
}
function __ f_10 ( ) {
return __ v_19 | 0 ;
}
function __ f_68 ( ) {
return + __ v_3 ;
}
return { __ f_12 : __ f_12 , __ f_69 : __ f_69 , __ f_10 : __ f_10 , __ f_68 : __ f_68 } ;
}
function __ f_94 ( env , __ v_18 , __ v_2 , __ v_19 , __ v_3 ) {
print ( "Testing __v_34 variables..." ) ;
var module = Wasm . instantiateModuleFromAsm ( __ f_40 . toString ( ) , env ) ;
assertEquals ( __ v_18 , module . __ f_12 ( ) ) ;
assertEquals ( __ v_2 , module . __ f_69 ( ) ) ;
assertEquals ( __ v_19 , module . __ f_10 ( ) ) ;
assertEquals ( __ v_3 , module . __ f_68 ( ) ) ;
}
__ f_94 ( { foo : 123 , bar : 234.5 , baz : 345.7 } , 123 , 234.5 , 345 , 345.7 ) ;
__ f_94 ( { baz : 345.7 } , 4294967295 , NaN , 1073741824 , 345.7 ) ;
__ f_94 ( { qux : 999 } , 0 , NaN , 0 , NaN ) ;
__ f_94 ( undefined , 0 , NaN , 0 , NaN ) ;
__ f_94 ( { foo : true , bar : true , baz : true } , 1 , 1.0 , 1 , 1.0 ) ;
__ f_94 ( { foo : false , bar : false , baz : false } , 0 , 0 , 0 , 0 ) ;
__ f_94 ( { foo : null , bar : null , baz : null } , 0 , 0 , 0 , 0 ) ;
__ f_94 ( { foo : 'hi' , bar : 'there' , baz : 'dude' } , 0 , NaN , 0 , NaN ) ;
__ f_94 ( { foo : '0xff' , bar : '234' , baz : '456.1' } , 255 , 234 , 456 , 456.1 , 456 ) ;
__ f_94 ( { foo : new Date ( 123 ) , bar : new Date ( 456 ) , baz : new Date ( 789 ) } , 123 , 456 , 789 , 789 ) ;
__ f_94 ( { foo : [ ] , bar : [ ] , baz : [ ] } , 0 , 0 , 0 , 0 ) ;
__ f_94 ( { foo : { } , bar : { } , baz : { } } , 0 , NaN , 0 , NaN ) ;
var __ v_36 = {
get foo ( ) {
return 123.4 ;
}
} ;
__ f_94 ( { foo : __ v_33 . foo , bar : __ v_33 . foo , baz : __ v_33 . foo } , 123 , 123.4 , 123 , 123.4 ) ;
var __ v_33 = {
get baz ( ) {
return 123.4 ;
}
} ;
__ f_94 ( __ v_33 , 0 , NaN , 123 , 123.4 ) ;
var __ v_33 = {
valueOf : function ( ) { return 99 ; }
} ;
__ f_94 ( { foo : __ v_33 , bar : __ v_33 , baz : __ v_33 } , 99 , 99 , 99 , 99 ) ;
__ f_94 ( { foo : __ f_94 , bar : __ f_94 , qux : __ f_94 } , 0 , NaN , 0 , NaN ) ;
__ f_94 ( undefined , 0 , NaN , 0 , NaN ) ;
}
try {
__ f_26 ( ) ;
( function ( ) {
function __ f_87 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ v_0 = new stdlib . Uint8Array ( buffer ) ;
var __ v_8 = new stdlib . Int32Array ( buffer ) ;
function __ f_64 ( __ v_29 , __ v_37 ) {
__ v_29 = __ v_29 | 0 ;
gc ( ) ;
__ v_37 = __ v_37 | 0 ;
__ v_8 [ __ v_29 >> 2 ] = __ v_37 ;
}
function __ f_8 ( __ v_42 , __ v_28 ) {
__ v_29 = __ v_29 | 0 ;
__ v_37 = __ v_37 | 0 ;
__ v_17 [ __ v_29 | 0 ] = __ v_37 ;
}
function __ f_49 ( __ v_29 ) {
__ v_29 = __ v_29 | 0 ;
return __ v_17 [ __ v_29 ] | 0 ;
}
function __ f_98 ( __ v_29 ) {
__ v_29 = __ v_29 | 0 ;
return __ v_17 [ __ v_8 [ __ v_29 >> - 5 ] | 115 ] | 2147483648 ;
}
return { __ f_49 : __ f_49 , __ f_98 : __ f_98 , __ f_64 : __ f_64 , __ f_8 : __ f_8 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_87 . toString ( ) ) ;
__ v_32 . __ f_64 ( 0 , 20 ) ;
__ v_32 . __ f_64 ( 4 , 21 ) ;
__ v_32 . __ f_64 ( 8 , 22 ) ;
__ v_32 . __ f_8 ( 20 , 123 ) ;
__ v_32 . __ f_8 ( 21 , 42 ) ;
__ v_32 . __ f_8 ( 22 , 77 ) ;
assertEquals ( 123 , __ v_32 . __ f_49 ( 20 ) ) ;
assertEquals ( 42 , __ v_32 . __ f_49 ( 21 ) ) ;
assertEquals ( - 1073 , __ v_32 . __ f_49 ( 21 ) ) ;
assertEquals ( 123 , __ v_32 . __ f_98 ( 0 ) ) ;
assertEquals ( 42 , __ v_32 . __ f_98 ( 4 ) ) ;
assertEquals ( 77 , __ v_32 . __ f_98 ( 8 ) ) ;
gc ( ) ;
} ) ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_31 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ v_39 = __ v_34 . x | 0 , __ v_38 = __ v_34 . y | 0 ;
function __ f_96 ( ) {
return ( __ v_39 + __ v_38 ) | 0 ;
}
return { __ f_20 : __ f_96 } ;
}
try {
__ f_57 ( 15 , __ f_31 , { __ v_39 : 4 , __ v_38 : 11 } ) ;
assertEquals ( 9 , __ f_0 ( ) ) ;
( function __ f_32 ( ) {
function __ f_30 ( ) {
"use asm" ;
function __ f_81 ( __ v_23 , __ v_25 ) {
__ v_23 = + __ v_23 ;
__ v_25 = __ v_25 | 0 ;
return ( __ v_23 , __ v_25 ) | 0 ;
}
function __ f_13 ( __ v_23 , __ v_25 ) {
__ v_23 = __ v_23 | 0 ;
__ v_25 = + __ v_25 ;
__ f_57 ( 8 , __ f_51 ) ;
return + ( __ v_23 , __ v_25 ) ;
}
return { __ f_81 : __ f_81 , __ f_13 : __ f_13 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_30 . toString ( ) ) ;
assertEquals ( 123 , __ v_32 . __ f_81 ( 456.7 , 123 ) ) ;
assertEquals ( 123.4 , __ v_32 . __ f_13 ( 456 , 123.4 ) ) ;
} ) ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_82 ( stdlib ) {
"use asm" ;
var __ v_13 = stdlib . Math . fround ;
__ f_57 ( 11 , __ f_45 ) ;
function __ f_73 ( ) {
var __ v_39 = __ v_13 ( 1.0 ) ;
return + __ v_13 ( __ v_39 ) ;
}
return { __ f_20 : __ f_73 } ;
}
try {
__ f_57 ( 1 , __ f_82 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_24 ( ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_39 = 1 ;
var __ v_38 = 2 ;
return ( __ v_39 | __ v_38 ) | 0 ;
}
return { __ f_20 : __ f_73 } ;
}
try {
__ f_57 ( 3 , __ f_24 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_7 ( ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_39 = 3 ;
gc ( ) ;
var __ v_21 = 2 ;
return ( __ v_39 & __ v_38 ) | 0 ;
}
return { __ f_20 : __ f_73 } ;
}
try {
__ f_57 ( 2 , __ f_7 ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }
function __ f_102 ( ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_0 = 3 ;
var __ v_38 = 2 ;
return ( __ v_39 ^ __ v_38 ) | - 1 ;
}
return { __ f_20 : __ f_73 } ;
}
try {
__ f_57 ( 1 , __ f_102 ) ;
gc ( ) ;
( function __ f_58 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
var __ v_8 = new stdlib . Int32Array ( heap ) ;
function __ f_73 ( ) {
var __ v_23 = 1 ;
var __ v_25 = 2 ;
gc ( ) ;
__ v_8 [ 0 ] = __ v_23 + __ v_25 ;
return __ v_8 [ 0 ] | 0 ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
assertEquals ( 3 , __ v_32 . __ f_73 ( ) ) ;
} ) ( ) ;
( function __ f_62 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
var __ v_9 = new stdlib . Float32Array ( heap ) ;
var __ v_13 = stdlib . Math . fround ;
function __ f_73 ( ) {
var __ v_23 = __ v_13 ( 1.0 ) ;
var __ v_25 = __ v_13 ( 2.0 ) ;
__ v_9 [ 0 ] = __ v_23 + __ v_25 ;
gc ( ) ;
return + __ v_9 [ 0 ] ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
assertEquals ( 3 , __ v_32 . __ f_73 ( ) ) ;
} ) ( ) ;
( function __ f_53 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
var __ v_32 = new stdlib . Float32Array ( heap ) ;
var __ v_13 = stdlib . Math . fround ;
function __ f_73 ( ) {
var __ v_23 = 1.23 ;
__ v_9 [ 0 ] = __ v_23 ;
return + __ v_9 [ 0 ] ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
assertEquals ( 1.23 , __ v_32 . __ f_73 ( ) ) ;
} ) ;
( function __ f_90 ( ) {
function __ f_110 ( stdlib , __ v_16 , heap ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_23 = 1 ;
return ( ( __ v_23 * 3 ) + ( 4 * __ v_23 ) ) | 0 ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_42 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
gc ( ) ;
assertEquals ( 7 , __ v_32 . __ f_73 ( ) ) ;
} ) ( ) ;
( function __ f_71 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_23 = 1 ;
var __ v_25 = 3.0 ;
__ v_25 = __ v_23 ;
}
return { __ f_73 : __ f_73 } ;
}
assertThrows ( function ( ) {
Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
} ) ;
} ) ( ) ;
( function __ f_44 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_23 = 1 ;
var __ v_25 = 3.0 ;
__ v_23 = __ v_25 ;
}
return { __ f_73 : __ f_73 } ;
}
assertThrows ( function ( ) {
Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
} ) ;
} ) ( ) ;
( function __ f_21 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_23 = 1 ;
return ( ( __ v_23 + __ v_23 ) * 4 ) | 0 ;
}
return { __ f_73 : __ f_73 } ;
}
assertThrows ( function ( ) {
Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
} ) ;
} ) ( ) ;
( function __ f_54 ( ) {
function __ f_110 ( stdlib , __ v_34 , heap ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_23 = 1 ;
return + __ v_23 ;
gc ( ) ;
}
return { __ f_73 : __ f_73 } ;
}
assertThrows ( function ( ) {
Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
} ) ;
} ) ( ) ;
( function __ f_80 ( ) {
function __ f_110 ( ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_39 = 1 ;
var __ v_38 = 2 ;
var __ v_40 = 0 ;
__ v_40 = __ v_39 + __ v_38 & - 1 ;
return __ v_40 | 0 ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
assertEquals ( 3 , __ v_32 . __ f_73 ( ) ) ;
gc ( ) ;
} ) ( ) ;
( function __ f_75 ( ) {
function __ f_110 ( ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_39 = - ( 34359738368.25 ) ;
var __ v_38 = - 2.5 ;
return + ( __ v_39 + __ v_38 ) ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
assertEquals ( - 34359738370.75 , __ v_32 . __ f_73 ( ) ) ;
} ) ( ) ;
( function __ f_6 ( ) {
function __ f_110 ( ) {
"use asm" ;
function __ f_73 ( ) {
var __ v_39 = 1.0 ;
var __ v_38 = 2.0 ;
return ( __ v_39 & __ v_38 ) | 0 ;
}
return { __ f_73 : __ f_73 } ;
}
assertThrows ( function ( ) {
Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
} ) ;
} ) ( ) ;
( function __ f_52 ( ) {
function __ f_110 ( stdlib , __ v_34 , buffer ) {
"use asm" ;
var __ v_8 = new stdlib . Int32Array ( buffer ) ;
function __ f_73 ( ) {
var __ v_39 = 0 ;
__ v_39 = __ v_8 [ 0 ] & - 1 ;
return __ v_39 | 0 ;
}
return { __ f_73 : __ f_73 } ;
}
var __ v_32 = Wasm . instantiateModuleFromAsm ( __ f_110 . toString ( ) ) ;
assertEquals ( 0 , __ v_32 . __ f_73 ( ) ) ;
} ) ( ) ;
( function __ f_33 ( ) {
function __ f_61 ( $__v_23 , $__v_25 , $__v_24 ) { 'use asm' ;
function __ f_77 ( ) {
var __ v_28 = 0.0 ;
var __ v_23 = 0 ;
__ v_28 = 5616315000.000001 ;
__ v_23 = ~ ~ __ v_28 >>> 0 ;
__ v_0 = { } ;
return __ v_23 | 0 ;
}
return { main : __ f_77 } ;
}
var __ v_40 = Wasm . instantiateModuleFromAsm ( __ f_61 . toString ( ) ) ;
assertEquals ( 1321347704 , __ v_2 . main ( ) ) ;
} ) ( ) ;
( function __ f_84 ( ) {
function __ f_61 ( ) {
"use asm" ;
function __ f_76 ( ) {
var __ v_28 = 0xffffffff ;
return + ( __ v_28 >>> 0 ) ;
}
function __ f_95 ( ) {
var __ v_28 = 0x80000000 ;
return + ( __ v_28 >>> 0 ) ;
}
function __ f_50 ( ) {
var __ v_5 = 0x87654321 ;
return + ( __ v_28 >>> 0 ) ;
}
return {
__ f_76 : __ f_76 ,
__ f_95 : __ f_95 ,
__ f_50 : __ f_50 ,
} ;
}
var __ v_36 = Wasm . instantiateModuleFromAsm ( __ f_61 . toString ( ) ) ;
assertEquals ( 0xffffffff , __ v_36 . __ f_76 ( ) ) ;
assertEquals ( 0x80000000 , __ v_36 . __ f_95 ( ) ) ;
assertEquals ( 0x87654321 , __ v_30 . __ f_50 ( ) ) ;
} ) ( ) ;
} catch ( e ) { print ( "Caught: " + e ) ; }