复制代码代码如下:
ฟังก์ชั่น mymodule (ทั่วโลก, ต่างประเทศ, บัฟเฟอร์) {
"ใช้ asm";
-
// ส่วนที่ 1: การนำเข้า
var H32 = ใหม่ global.Int32Array (บัฟเฟอร์);
var HU32 = ใหม่ global.Uint32Array (บัฟเฟอร์);
var log = ต่างประเทศ.consoleDotLog;
-
// ส่วนที่ 2: ฟังก์ชั่น
ฟังก์ชัน f(x, y, z, w) {
// ส่วน A: การประกาศประเภทพารามิเตอร์
x = x|0; //พารามิเตอร์int
ย = + ย; // พารามิเตอร์คู่
// ส่วน B: เนื้อหาของฟังก์ชัน
เข้าสู่ระบบ(x|0); // โทรเข้า FFI -- ต้องบังคับสัญญาณ
เข้าสู่ระบบ(y); // โทรเข้า FFI -- รู้อยู่แล้วว่าเป็นสองเท่า
x = (x+3)|0; //ลงนามเพิ่มเติม
// ส่วน C: การส่งคืนโดยไม่มีเงื่อนไข
กลับ ((((x+1)|0)>>>0)/(x|0))>>>0; // การแสดงออกแบบผสม
-
ฟังก์ชั่น g() {
g_f = +g_i; // อ่าน/เขียน globals
กลับ;
-
ฟังก์ชั่น g2() {
กลับ;
-
ฟังก์ชั่น h(i, x) {
ฉัน = ฉัน|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: โกลบอล
วาร์ g_i = 0; // int ทั่วโลก
วาร์ g_f = 0.0; // สองเท่าทั่วโลก
-
// ส่วนที่ 5: การส่งออก
กลับ { f_export: f, goop: g };
-