WebAssembly.Table.prototype.set()
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æâ©.
set() 㯠WebAssembly.Table ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã¡ã½ããã§ãæå®ãããä½ç½®ã«æ ¼ç´ããã¦ããåç
§ãå¥ãªå¤ã«å¤æ´ãã¾ãã
æ§æ
set(index, value);
弿°
- index
-
夿´ãã颿°åç §ã®ä½ç½®ã
- value
-
夿´ããåç §ãããã¯ã¨ã¯ã¹ãã¼ãããã WebAssembly 颿°ã wasm 颿°ãå å¨ãã JavaScript ã©ããã¼ã§ããå¿ è¦ãããã¾ãã
è¿å¤
ãªãã
ä¾å¤
- index ã
Table.prototype.length以ä¸ã®å ´åãRangeErrorãçºçãã¾ãã - value ãã¨ã¯ã¹ãã¼ãããã WebAssembly 颿°ã§ã
nullã§ããªãå ´åãTypeErrorãçºçãã¾ãã
ä¾
>Table.set ã®ä½¿ç¨
次ã®ä¾ (table2.html ã®ã½ã¼ã¹ã³ã¼ãã¨åä½ä¾ã確èªãã¦ãã ãã) ã§ã¯ãåæãµã¤ãºãåç
§ 2 ã¤ã§ãã WebAssembly Table ã¤ã³ã¹ã¿ã³ã¹ãçæãã¦ãã¾ããããã¦ããã¼ãã«ã®é·ã㨠2 ã¤ã®ä½ç½®ã®å
容 (Table.prototype.get() ã§åå¾) ãåºåãã¦ãé·ãã 2 ã§ãããã¨ãããããã®ä½ç½®ã«ã¯ç¾å¨ã颿°ã®åç
§ãå«ã¾ãã¦ããªãã㨠(ç¾å¨ã¯ null ãè¿ããã¨) ã示ãã¦ãã¾ãã
var tbl = new WebAssembly.Table({ initial: 2, element: "anyfunc" });
console.log(tbl.length);
console.log(tbl.get(0));
console.log(tbl.get(1));
次ã«ããã¼ãã«ã®åç §ãå«ãã¤ã³ãã¼ããªãã¸ã§ã¯ãã使ãã¾ãã
var importObj = {
js: {
tbl: tbl,
},
};
æå¾ã«ã wasm ã¢ã¸ã¥ã¼ã« (table2.wasm) ã WebAssembly.instantiateStreaming() ã使ç¨ãã¦èªã¿è¾¼ã¿ã¤ã³ã¹ã¿ã³ã¹åãã¾ãããã¼ãã«ã®é·ããè¨é²ãããã¼ãã«ã«æ ¼ç´ããã 2 ã¤ã®é¢æ°åç
§ãå¼ã³åºãã¾ã (table2.wasm ã¢ã¸ã¥ã¼ã« (ããã¹ã表ç¾) ããã¼ãã«ã« 2 ã¤ã®é¢æ°ã®åç
§ã追å ããã©ã¡ããåç´ãªè¡¨ç¤ºã表示ãã¾ã)ã
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 > # dom-table-set > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- WebAssembly æ¦è¦ãã¼ã¸
- WebAssembly ã®æ¦å¿µ
- WebAssembly JavaScript API ã®ä½¿ç¨