>  기사  >  웹 프론트엔드  >  asm.js 사용 샘플 코드_기본 지식

asm.js 사용 샘플 코드_기본 지식

WBOY
WBOY원래의
2016-05-16 17:12:081083검색

复主代码 代码如下:

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

    // -------------------------------- ---------------
    // 섹션 1: 가져오기

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

    // -------------------------------- ---------------
    // 섹션 2: 기능

    function f(x, y, z, w) {
        // 섹션 A: 매개변수 유형 선언
        x = x|0;      // 정수 매개변수
        y = y;       // 이중 매개변수

        // 섹션 B: 함수 본문
        log(x|0);     // FFI에 호출 -- 부호를 강제로 적용해야 함
        log(y);       // FFI에 호출 - 이미 double이라는 것을 알고 있습니다
        x = (x 3)|0;  // 서명된 추가

        // 섹션 C: 무조건 반환
        return ((((x 1)|0)>>>0)/(x|0))>>>0; // 복합 표현식
    }

    함수 g() {
        g_f = g_i; // 전역 읽기/쓰기
        return;
    }

    함수 g2() {
        return;
    }

    함수 h(i, x) {
        i = i|0;
        x = x|0;
        H32[(i&0xffffffff)>>4] = x; // 2^k-1로 마스크되고 바이트 수만큼 이동
        ftable_2[(x-2)&2]();        // 표 2의 동적 함수 호출
    }

    // -------------------------------- ---------------
    // 섹션 3: 함수 테이블

    var ftable_1 = [f];
    var ftable_2 = [g, g2]; // 모두 같은 유형

    // -------------------------------- ---------------
    // 섹션 4: 전역

    var g_i = 0;   // int 전역
    var g_f = 0.0; // 이중 전역

    // -------------------------------- ---------------
    // 섹션 5: 내보내기

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.