复制番号代番号次のように:
関数 mymodule(グローバル、外部、バッファ) {
"asm を使用";
// ------------------------------------------------ -------------------------
// セクション 1: インポート
var H32 = 新しいグローバル.Int32Array(バッファ);
var HU32 = 新しいグローバル.Uint32Array(バッファ);
var log = 外部.consoleDotLog;
// ------------------------------------------------ -------------------------
// セクション 2: 関数
関数 f(x, y, z, w) {
// セクション A: パラメータの型宣言
x = x|0; // intパラメータ
y = +y; // ダブルパラメータ
// セクション B: 関数本体
log(x|0); // FFI を呼び出します -- 符号を強制する必要があります
ログ(y); // FFI を呼び出します -- これが double であることはすでにわかっています
x = (x+3)|0; // 署名付き追加
// セクション C: 無条件リターン
return ((((x+1)|0)>>>0)/(x|0))>>>0; // 複合式
}
関数 g() {
g_f = +g_i; // 読み取り/書き込みグローバル
戻る;
}
関数 g2() {
戻る;
}
関数 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 };
}