asm.js是一个底层、格外为JavaScript子集优化的编译器。这是Mozilla研究项目,类似Emscripte,Madreel,和LLJS.
示例代码:
fuctiomymodule(global,foreig,buffer){"useasm";//-------------------------------------------------------------------------//SECTION1:importsvarH32=ewglobal.It32Array(buffer);varHU32=ewglobal.Uit32Array(buffer);varlog=foreig.cosoleDotLog;//-------------------------------------------------------------------------//SECTION2:fuctiosfuctiof(x,y,z,w){//SECTIONA:parametertypedeclaratiosx=x|0;//itparametery=+y;//doubleparameter//SECTIONB:fuctiobodylog(x|0);//callitoFFI--mustforcethesiglog(y);//callitoFFI--alreadykowit'sadoublex=(x+3)|0;//sigedadditio//SECTIONC:ucoditioalreturretur((((x+1)|0)>>>0)/(x|0))>>>0;//compoudexpressio}fuctiog(){g_f=+g_i;//read/writeglobalsretur;}fuctiog2(){retur;}fuctioh(i,x){i=i|0;x=x|0;H32[(i&0xffffffff)>>4]=x;//maskedby2^k-1,shiftedbybytecoutftable_2[(x-2)&2]();//dyamiccalloffuctiositable2}//-------------------------------------------------------------------------//SECTION3:fuctiotablesvarftable_1=[f];varftable_2=[g,g2];//allofthesametype//-------------------------------------------------------------------------//SECTION4:globalsvarg_i=0;//itglobalvarg_f=0.0;//doubleglobal//-------------------------------------------------------------------------//SECTION5:exportsretur{f_export:f,goop:g};}








评论