WebAssembly.Table
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2017å¹´10æâ©.
WebAssembly.Table() ãªãã¸ã§ã¯ã㯠JavaScript ã®ã©ããã¼ãªãã¸ã§ã¯ãã§ããã颿°ã®åç
§ãæ ¼ç´ãã WebAssembly Table ã表ãé
åé¢¨ã®æ§é ãæã£ã¦ãã¾ãã JavaScript ã WebAssembly ã®ã³ã¼ãã§ä½æããããã¼ãã«ã¯ã JavaScript 㨠WebAssembly ã®ä¸¡æ¹ããã¢ã¯ã»ã¹ã§ãã夿´ãã§ãã¾ãã
ã¡ã¢: ç¾å¨ããã¼ãã«ã«ã¯é¢æ°ã®åç §ã®ã¿ãæ ¼ç´ã§ãã¾ãããå°æ¥çã«æ¡å¼µãããäºå®ã§ãã
ã³ã³ã¹ãã©ã¯ã¿ã¼
WebAssembly.Table()-
æ°ãã
Tableãªãã¸ã§ã¯ããçæãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
Table.prototype.length-
ãã¼ãã«ã®é·ããè¿ãã¾ããããªãã¡ãè¦ç´ æ°ã§ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
Table.prototype.get()-
ã¢ã¯ã»ãµã¼é¢æ°ã§ããæå®ããä½ç½®ã«æ ¼ç´ãããè¦ç´ ãåå¾ãã¾ãã
Table.prototype.grow()-
Table ã¤ã³ã¹ã¿ã³ã¹ãæå®ããè¦ç´ æ°ã ãæ¡å¼µãã¾ãã
Table.prototype.set()-
æå®ããä½ç½®ã«è¦ç´ ãæ ¼ç´ãã¾ãã
ä¾
>æ°ãã WebAssembly Table ã¤ã³ã¹ã¿ã³ã¹ã®çæ
次ã®ä¾ã§ã¯ (table2.html ã¨åä½ä¾ã確èªãã¦ãã ãã)ãæ°ãã WebAssembly Table ã¡ã½ãããåæãµã¤ãº 2 è¦ç´ ã§çæãã¾ãããããããã®ãã¼ãã«ã®é·ã㨠2 ã¤ã®ä½ç½®ã®å
容ã (Table.prototype.get() ã使ç¨ãã¦åãåã£ã¦) 表示ããé·ãã 2 ã§ä¸¡æ¹ã®è¦ç´ ã null ã§ãããã¨ã示ãã¾ãã
var tbl = new WebAssembly.Table({ initial: 2, element: "anyfunc" });
console.log(tbl.length); // "2"
console.log(tbl.get(0)); // "null"
console.log(tbl.get(1)); // "null"
次ã«ããã¼ãã«ãå«ãã¤ã³ãã¼ããªãã¸ã§ã¯ããçæãã¾ãã
var importObj = {
js: {
tbl: tbl,
},
};
æå¾ã« WebAssembly.instantiateStreaming() ã使ç¨ã㦠wasm ã¢ã¸ã¥ã¼ã« (table2.wasm) ããã¼ã ããã¤ã³ã¹ã¿ã³ã¹åãã¾ããtable2.wasm ã¢ã¸ã¥ã¼ã«ã¯2ã®é¢æ°ãæã£ã¦ã㦠(1ã¤ã¯42ãããã1ã¤ã¯83ãè¿ã) ãã¤ã³ãã¼ãããããã¼ãã«ã®0ã1çªç®ã«ä¸¡æ¹ã®è¦ç´ ãæ ¼ç´ããã¾ã (text representationãåç
§) ãããã¦ãã¤ã³ã¹ã¿ã³ã¹åãããå¾ããã¼ãã«ã®é·ãã¯2ã®ã¾ã¾ã§ããããããä»ã¯JSããå¼ã³åºãå¯è½ãª ã¨ã¯ã¹ãã¼ããããWebAssembly颿° ãå«ã¾ãã¦ãã¾ãã
WebAssembly.instantiateStreaming(fetch('table2.wasm'), importObject)
.then(function(obj) {
console.log(tbl.length);
console.log(tbl.get(0)());
console.log(tbl.get(1)());
});å
é¨ã®å¤ã表示ããããã«ã¯ãåç
§ããã颿°ã®ã¢ã¯ã»ãµã®å¼ã³åºãã®å¾ã«ã2ã¤ç®ã®é¢æ°å¼ã³åºããå«ããå¿
è¦ããããã¨ã«æ³¨æãã¦ä¸ãã (get(0) ã§ã¯ãªã get(0)())ã
ãã®ä¾ã§ã¯ãJavaScript ãããã¼ãã«ã使ãã¦ã¢ã¯ã»ã¹ãã¦ãã¾ãããwasm ã¤ã³ã¹ã¿ã³ã¹å ã§åããã¼ãã«ãåç §ãã¦å¼ã³åºããã¨ãã§ãã¾ãã
仿§æ¸
| Specification |
|---|
| WebAssembly JavaScript Interface > # tables > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- WebAssembly æ¦è¦ãã¼ã¸
- WebAssembly ã®æ¦å¿µ
- WebAssembly JavaScript API ã®ä½¿ç¨