asm.js使用示例代码


Posted in Javascript onNovember 28, 2013
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 };
}
Javascript 相关文章推荐
JavaScript实现Sleep函数的代码
Mar 04 Javascript
30个最好的jQuery 灯箱插件分享
Apr 25 Javascript
jquery $.fn $.fx是什么意思有什么用
Nov 04 Javascript
使用js写的一个简易的投票
Nov 27 Javascript
JavaScript实现简单图片滚动附源码下载
Jun 17 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
jquery  实现轮播图详解及实例代码
Oct 12 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
vue-cli构建vue项目的步骤详解
Jan 27 Javascript
微信小程序获取地理位置及经纬度授权代码实例
Sep 18 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
Sep 21 Javascript
TypeScript中条件类型精读与实践记录
Oct 05 Javascript
jquery实现动态菜单的实例代码
Nov 28 #Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
Nov 28 #Javascript
原始XMLHttpRequest方法详情回顾
Nov 28 #Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 #Javascript
使用js写的一个简易的投票
Nov 27 #Javascript
juery框架写的弹窗效果适合新手
Nov 27 #Javascript
js使用数组判断提交数据是否存在相同数据
Nov 27 #Javascript
You might like
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP基础知识介绍
2013/09/17 PHP
详解js异步文件加载器
2016/01/24 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
javascript深入理解js闭包
2010/07/03 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
在Python中使用正则表达式的方法
2015/08/13 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
Python获取时间戳代码实例
2019/09/24 Python
在python3.64中安装pyinstaller库的方法步骤
2020/06/02 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
上海微创软件面试题
2012/06/14 面试题
考试作弊被抓检讨书
2014/01/10 职场文书
妇女干部培训方案
2014/05/12 职场文书
个人安全生产责任书
2014/07/28 职场文书
小学优秀班主任材料
2014/12/17 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
大学生逃课检讨书
2015/05/04 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
排查Tomcat进程假死的问题
2022/05/06 Servers
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js