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() ìì±ìë ì§ì ë í¬ê¸° ë° ìì ì íì ì Table ê°ì²´ë¥¼ ë§ëëë¤.
ì´ê²ì ìë° ì¤í¬ë¦½í¸ ëí¼ ê°ì²´ë¡, í¨ì 참조를 ì ì¥íë WebAssembly í ì´ë¸ì ëíë´ë ë°°ì´ê³¼ ê°ì 구조ì ëë¤. JavaScript ëë WebAssembly ì½ëë¡ ìì±ë í ì´ë¸ì JavaScript ë° WebAssemblyìì ì¡ì¸ì¤ ë° ë³ê²½í ì ììµëë¤.
ì°¸ê³ : í ì´ë¸ì íì¬ function referencesë§ ì ì¥í ì ìì§ë§ ëì¤ì íì¥ ë ì ììµëë¤.
Syntax
var myTable = new WebAssembly.Table(tableDescriptor);
Parameters
- tableDescriptor
-
ë¤ì 멤ë²ë¥¼ í¬í¨ í ììë ê°ì²´ì ëë¤:_ element _ : í ì´ë¸ì ì ì¥ ë ê° ì íì ëíë´ë 문ìì´. íì¬ë¡ìë
"anyfunc"(í¨ì) ê°ë§ìì ì ììµëë¤.- initial
-
WebAssembly í ì´ë¸ì ì´ê¸° ìì ìì ëë¤.
- maximum Optional
-
WebAssembly í ì´ë¸ì ìµë ì¦ê° ìì ìì ëë¤.
Exceptions
tableDescriptorê° object ì íì´ ìë ê²½ì°TypeErrorê° ë°ìí©ëë¤.maximumì´ ì§ì ëê³ initialë³´ë¤ ìì ê²½ì°RangeErrorê° ë°ìí©ëë¤.
Table instances
모ë Table ì¸ì¤í´ì¤ë Table()ìì±ìì prototype objectìì ììë°ìµëë¤.ì´ ì¸ì¤í´ì¤ë 모ë Table ì¸ì¤í´ì¤ì ì ì©ëëë¡ ìì í ì ììµëë¤.
Instance properties
Table.prototype.constructor-
ì´ ê°ì²´ì ì¸ì¤í´ì¤ë¥¼ ìì± í í¨ì를 ëë ¤ì¤ëë¤. 기본ì ì¼ë¡ ì´ê²ì
WebAssembly.Table()ìì±ìì ëë¤. Table.prototype.length-
í ì´ë¸ì 길ì´, ì¦ ììì ì를 ëë ¤ì¤ëë¤.
Instance methods
Table.prototype.get()-
ì ê·¼ ì í¨ì - 주ì´ì§ ìì¸ì ì ì¥ë ìì를 ê°ì ¸ìµëë¤.
Table.prototype.grow()-
ì§ì ë ìì ìë§í¼ Table ì¸ì¤í´ì¤ì í¬ê¸°ë¥¼ ë립ëë¤.
Table.prototype.set()-
ì§ì ë ì¸ë±ì¤ì 격ë©ëì´ìë ìì를, ì§ì ë ê°ì¼ë¡ ì¤ì í©ëë¤.
Examples
ë¤ì ìì (table2.html source code ë° live version 참조)ë ì´ê¸° í¬ê¸°ê° 2ì¸ ì WebAssembly Table ì¸ì¤í´ì¤ë¥¼ ë§ëëë¤. ê·¸ë° ë¤ì ë ê°ì ì¸ë±ì¤ (í 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"
ê·¸ë° ë¤ì í
ì´ë¸ì í¬í¨í importObj를 ë§ëëë¤.
var importObj = {
js: {
tbl: tbl,
},
};
ë§ì§ë§ì¼ë¡ WebAssembly.instantiateStreaming () ë©ìë를 ì¬ì©íì¬ wasm 모ë (table2.wasm)ì ë¡ëíê³ ì¸ì¤í´ì¤íí©ëë¤. table2.wasm 모ëìë ë ê°ì í¨ì (íëë 42를 ë°ííê³ ë¤ë¥¸ íëë 83ì ë°ííë í¨ì)ê° ë¤ì´ ìê³ ê°ì ¸ì¨ í
ì´ë¸ì ìì 0ê³¼ 1ì ë ë¤ ì ì¥í©ëë¤ (text representation 참조). ì¸ì¤í´ì¤í íìë í
ì´ë¸ì 길ì´ë ì¬ì í 2ì´ì§ë§ JSì í¸ì¶ í ììë í¸ì¶ ê°ë¥í Exported WebAssembly Functionsê° ììì í¬í¨ë©ëë¤.
WebAssembly.instantiateStreaming(fetch("table2.wasm"), importObject).then(
function (obj) {
console.log(tbl.length);
console.log(tbl.get(0)());
console.log(tbl.get(1)());
},
);
ì¡ì¸ìì ë ë¶ë¶ì ë ë²ì§¸ í¨ì í¸ì¶ ì°ì°ì를 í¬í¨ìì¼ ì¤ì ë¡ ì°¸ì¡° ë í¨ì를 í¸ì¶íê³ ê·¸ ìì ì ì¥ë ê°ì 기ë¡í´ì¼í©ëë¤ (ì : get(0) ëì get(0)()).
ì´ ìì ë ìë° ì¤í¬ë¦½í¸ìì í ì´ë¸ì ë§ë¤ê³ ì¡ì¸ì¤íê³ ìì§ë§ wasm ì¸ì¤í´ì¤ ë´ë¶ììë ê°ì í ì´ë¸ì ë³¼ ì ìê³ í¸ì¶ í ì ììì ë³´ì¬ì¤ëë¤.
ëª ì¸ì
| Specification |
|---|
| WebAssembly JavaScript Interface > # tables > |