asm.js使用示例代码_基础知识

复制代码 代码如下:

function mymodule(global, foreign, buffer) {
    "use asm";

    // -------------------------------------------------------------------------
    // SECTION 1: imports

    var H32 = new global.Int32Array(buffer);
    var HU32 = new global.Uint32Array(buffer);
    var log = foreign.consoleDotLog;

    // -------------------------------------------------------------------------
    // SECTION 2: functions

    function f(x, y, z, w) {
        // SECTION A: parameter type declarations
        x = x|0;      // int parameter
        y = +y;       // double parameter

        // SECTION B: function body
        log(x|0);     // call into FFI -- must force the sign
        log(y);       // call into FFI -- already know it's a double
        x = (x+3)|0;  // signed addition

        // SECTION C: unconditional return
        return ((((x+1)|0)>>>0)/(x|0))>>>0; // compound expression
    }

    function g() {
        g_f = +g_i; // read/write globals
        return;
    }

    function g2() {
        return;
    }

    function h(i, x) {
        i = i|0;
        x = x|0;
        H32[(i&0xffffffff)>>4] = x; // masked by 2^k-1, shifted by byte count
        ftable_2[(x-2)&2]();        // dynamic call of functions in table 2
    }

    // -------------------------------------------------------------------------
    // SECTION 3: function tables

    var ftable_1 = [f];
    var ftable_2 = [g, g2]; // all of the same type

    // -------------------------------------------------------------------------
    // SECTION 4: globals

    var g_i = 0;   // int global
    var g_f = 0.0; // double global

    // -------------------------------------------------------------------------
    // SECTION 5: exports

    return { f_export: f, goop: g };
}

时间: 2024-08-31 08:26:06

asm.js使用示例代码_基础知识的相关文章

javascript delete 使用示例代码_基础知识

javascript delete example 复制代码 代码如下: var flower={}; flower.name="oop"; delete flower.name; //true alert(flower.name); //undefined 创建一个名为flower的对象 flower具有成员name,值"oop"; delete 操作 删除这个成员 删除成功,已不存在flower.name这个成员 javascript delete exampl

javascript中字符串的定义示例代码_基础知识

复制代码 代码如下: <html> <head> <title>javascript中字符串的定义</title> <script> //定义字符串 //第一种 var str = new Array(); alert(str);//空字符 //第二种 var str2 = new Array("hello"); alert(str2);//hello //第三种 /* String 对象可用字符串文字显式创建. 用这种方法创

js创建对象的区别示例介绍_基础知识

A : var obj1 = obj2 = new Object(); 与 B : var obj1 = new Object(), obj2 = new Object(); 是两种不同的赋值方式,导致的结果也不一样,千万要注意喽- A 的 会将2个对象指向同一内存地址,导致两个对象的内容一致 var t1 = t2 = new Object(); t1.name = 'hello'; t2.name = 'kao'; t1.name = null; alert(t2.name); // 结果为

htm调用JS代码_基础知识

1.用JS调用Htm,主页面怎么写? 在<body>与</body>之间合适位置写下这个代码: <script language="JavaScript" src="head.js"  type="text/JavaScript"></script> src="js文件名称和路径" 2.js文件怎么写? 比如:head.js内容这样写,把主页面里的htm需要转换成JS的代码,用J

JavaScript 表单处理实现代码_基础知识

一 表单介绍 在HTML中,表单是由<form>元素来表示的,而在JavaScript中,表单对应的则是HTMLFormElement类型; // HTMLFormElement继承了HTMLElement;因此它拥有HTML元素具有的默认属性,别且还独有自己的属性和方法;HTMLFormElement属性和方法属性或方法 说明 acceptCharset 服务器能够处理的字符集; action 接受请求的URL; elements 表单中所有控件的集合; enctype 请求的编码类型; l

js querySelector() 使用方法_基础知识

querySelector 定义和用法 querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素. 注意: querySelector() 方法仅仅返回匹配指定选择器的第一个元素.如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代. 浏览器支持 表格中的数字表示支持该方法的第一个浏览器的版本号. 语法document.querySelector(CSS selectors) 参数值 参数 类型 描述 CSS 选择器 String 必须.指定一

使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码_基础知识

源码下载 源码我已经上传到 CSDN 了,无需资源分,下载地址:http://download.csdn.net/detail/zgynhqf/8565873. 源码使用 VS 2013 +TypeScript 1.4 进行开发.打开后,显示如下图: JsTankGame 1.0:老的使用 JS 编写的坦克游戏. JsTankGame 2.0:新的使用 TS 直接翻译过来的游戏. JsTankGame:在 2.0 的基础上,对类型进行了重构后的新游戏. 重构步骤 由于老的 JS 游戏是采用 MS

js选择器全面解析_基础知识

原生JS选择器有getElementById.getElementsByName.getElementsByTagName和getElementsByClassName这四个,下面我就一个一个介绍这四个选择器的用法. 1.getElementById(通过ID获取元素) 用法:document.getElementById("Id");Id为要获取的元素的id属性值. 2.getElementsByName(通过name属性获取元素) 用法:document.getElementsBy

JS中attr和prop属性的区别以及优先选择示例介绍_基础知识

相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties).只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes.prop应运而生了. 既然我们想知道他们两的区别,最好就看看他们的源代码,不要被代码长度所吓到,我们只看关键的几句: attr: function( elem, name, value, pass )