复制代码代码如下:
function meumódulo(global, estrangeiro, buffer) {
"usar asm";
// ------------------------------------------------ -------------------------
// SEÇÃO 1: importações
var H32 = novo global.Int32Array(buffer);
var HU32 = novo global.Uint32Array(buffer);
var log=estrangeiro.consoleDotLog;
// ------------------------------------------------ -------------------------
// SEÇÃO 2: funções
função f(x, y, z, w) {
// SEÇÃO A: declarações de tipo de parâmetro
x = x|0; //parâmetro interno
y = +y; //parâmetro duplo
// SEÇÃO B: corpo da função
registro(x|0); //chama FFI – deve forçar o sinal
log(y); // liga para a FFI – já sei que é duplo
x = (x+3)|0; // adição assinada
// SEÇÃO C: retorno incondicional
retornar ((((x+1)|0)>>>0)/(x|0))>>>0; // expressão composta
}
função g() {
g_f = +g_i; // lê/escreve globais
retornar;
}
função g2() {
retornar;
}
função h(eu, x) {
eu = eu|0;
x = x|0;
H32[(i&0xffffffff)>>4] = x; // mascarado por 2^k-1, deslocado pela contagem de bytes
tabela_2[(x-2)&2](); // chamada dinâmica de funções na tabela 2
}
// ------------------------------------------------ -------------------------
// SEÇÃO 3: tabelas de funções
var tabela_1 = [f];
var tabela_2 = [g, g2]; //todos do mesmo tipo
// ------------------------------------------------ -------------------------
// SEÇÃO 4: globais
var g_i = 0; //int global
var g_f = 0,0; //duplo global
// ------------------------------------------------ -------------------------
// SEÇÃO 5: exportações
return { f_export: f, goop: g };
}