Last active
April 3, 2024 22:58
-
-
Save kripken/2e7f681ff7878a6e06bb721327328623 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
id: 'Block', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'list', | |
}, | |
{ | |
form: 'SCOPE_NAME_DEF', | |
name: 'name', | |
}, | |
] | |
}, | |
{ | |
id: 'If', | |
fields: [ | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'ifFalse', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ifTrue', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'condition', | |
}, | |
] | |
}, | |
{ | |
id: 'Loop', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'body', | |
}, | |
{ | |
form: 'SCOPE_NAME_DEF', | |
name: 'name', | |
}, | |
] | |
}, | |
{ | |
id: 'Break', | |
fields: [ | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'condition', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'SCOPE_NAME_USE', | |
name: 'name', | |
}, | |
] | |
}, | |
{ | |
id: 'Switch', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'condition', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'SCOPE_NAME_USE', | |
name: 'default_', | |
}, | |
{ | |
form: 'SCOPE_NAME_USE_VECTOR', | |
name: 'targets', | |
}, | |
] | |
}, | |
{ | |
id: 'Call', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'target', | |
kind: 'Function', | |
}, | |
{ | |
form: 'INT', | |
name: 'isReturn', | |
}, | |
] | |
}, | |
{ | |
id: 'CallIndirect', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'target', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'table', | |
kind: 'Table', | |
}, | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'HEAPTYPE', | |
name: 'heapType', | |
}, | |
{ | |
form: 'INT', | |
name: 'isReturn', | |
}, | |
] | |
}, | |
{ | |
id: 'LocalGet', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
] | |
}, | |
{ | |
id: 'LocalSet', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
] | |
}, | |
{ | |
id: 'GlobalGet', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'name', | |
kind: 'Global', | |
}, | |
] | |
}, | |
{ | |
id: 'GlobalSet', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'name', | |
kind: 'Global', | |
}, | |
] | |
}, | |
{ | |
id: 'Load', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'INT', | |
name: 'bytes', | |
}, | |
{ | |
form: 'INT', | |
name: 'signed_', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'align', | |
}, | |
{ | |
form: 'INT', | |
name: 'isAtomic', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'Store', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'INT', | |
name: 'bytes', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'align', | |
}, | |
{ | |
form: 'INT', | |
name: 'isAtomic', | |
}, | |
{ | |
form: 'TYPE', | |
name: 'valueType', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'AtomicRMW', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'INT', | |
name: 'bytes', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'AtomicCmpxchg', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'replacement', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'expected', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'INT', | |
name: 'bytes', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'AtomicWait', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'timeout', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'expected', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'TYPE', | |
name: 'expectedType', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'AtomicNotify', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'notifyCount', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'AtomicFence', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'order', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDExtract', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'vec', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDReplace', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'vec', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDShuffle', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'right', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'left', | |
}, | |
{ | |
form: 'INT_ARRAY', | |
name: 'mask', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDTernary', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'c', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'b', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'a', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDShift', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'shift', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'vec', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDLoad', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'align', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'SIMDLoadStoreLane', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'vec', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'offset', | |
}, | |
{ | |
form: 'ADDRESS', | |
name: 'align', | |
}, | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'MemoryInit', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'offset', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'dest', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'segment', | |
kind: 'DataSegment', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'DataDrop', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'segment', | |
kind: 'DataSegment', | |
}, | |
] | |
}, | |
{ | |
id: 'MemoryCopy', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'source', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'dest', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'sourceMemory', | |
kind: 'Memory', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'destMemory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'MemoryFill', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'dest', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'Const', | |
fields: [ | |
{ | |
form: 'LITERAL', | |
name: 'value', | |
}, | |
] | |
}, | |
{ | |
id: 'Unary', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
] | |
}, | |
{ | |
id: 'Binary', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'right', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'left', | |
}, | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
] | |
}, | |
{ | |
id: 'Select', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'condition', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ifFalse', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ifTrue', | |
}, | |
] | |
}, | |
{ | |
id: 'Drop', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
] | |
}, | |
{ | |
id: 'Return', | |
fields: [ | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'value', | |
}, | |
] | |
}, | |
{ | |
id: 'MemorySize', | |
fields: [ | |
{ | |
form: 'TYPE', | |
name: 'ptrType', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'MemoryGrow', | |
fields: [ | |
{ | |
form: 'TYPE', | |
name: 'ptrType', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'delta', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'memory', | |
kind: 'Memory', | |
}, | |
] | |
}, | |
{ | |
id: 'RefNull', | |
fields: [ | |
] | |
}, | |
{ | |
id: 'RefIsNull', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
] | |
}, | |
{ | |
id: 'RefFunc', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'func', | |
kind: 'Function', | |
}, | |
] | |
}, | |
{ | |
id: 'RefEq', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'right', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'left', | |
}, | |
] | |
}, | |
{ | |
id: 'TableGet', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'table', | |
kind: 'Table', | |
}, | |
] | |
}, | |
{ | |
id: 'TableSet', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'table', | |
kind: 'Table', | |
}, | |
] | |
}, | |
{ | |
id: 'TableSize', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'table', | |
kind: 'Table', | |
}, | |
] | |
}, | |
{ | |
id: 'TableGrow', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'delta', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'table', | |
kind: 'Table', | |
}, | |
] | |
}, | |
{ | |
id: 'TableFill', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'dest', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'table', | |
kind: 'Table', | |
}, | |
] | |
}, | |
{ | |
id: 'TableCopy', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'source', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'dest', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'sourceTable', | |
kind: 'Table', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'destTable', | |
kind: 'Table', | |
}, | |
] | |
}, | |
{ | |
id: 'Try', | |
fields: [ | |
{ | |
form: 'SCOPE_NAME_USE', | |
name: 'delegateTarget', | |
}, | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'catchBodies', | |
}, | |
{ | |
form: 'NAME_KIND_VECTOR', | |
name: 'catchTags', | |
kind: 'Tag', | |
}, | |
{ | |
form: 'SCOPE_NAME_DEF', | |
name: 'name', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'body', | |
}, | |
] | |
}, | |
{ | |
id: 'TryTable', | |
fields: [ | |
{ | |
form: 'TYPE_VECTOR', | |
name: 'sentTypes', | |
}, | |
{ | |
form: 'INT_VECTOR', | |
name: 'catchRefs', | |
}, | |
{ | |
form: 'SCOPE_NAME_USE_VECTOR', | |
name: 'catchDests', | |
}, | |
{ | |
form: 'NAME_KIND_VECTOR', | |
name: 'catchTags', | |
kind: 'Tag', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'body', | |
}, | |
] | |
}, | |
{ | |
id: 'Throw', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'tag', | |
kind: 'Tag', | |
}, | |
] | |
}, | |
{ | |
id: 'Rethrow', | |
fields: [ | |
{ | |
form: 'SCOPE_NAME_USE', | |
name: 'target', | |
}, | |
] | |
}, | |
{ | |
id: 'ThrowRef', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'exnref', | |
}, | |
] | |
}, | |
{ | |
id: 'Nop', | |
fields: [ | |
] | |
}, | |
{ | |
id: 'Unreachable', | |
fields: [ | |
] | |
}, | |
{ | |
id: 'Pop', | |
fields: [ | |
] | |
}, | |
{ | |
id: 'TupleMake', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
] | |
}, | |
{ | |
id: 'TupleExtract', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'tuple', | |
}, | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
] | |
}, | |
{ | |
id: 'RefI31', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
] | |
}, | |
{ | |
id: 'I31Get', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'i31', | |
}, | |
{ | |
form: 'INT', | |
name: 'signed_', | |
}, | |
] | |
}, | |
{ | |
id: 'CallRef', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'target', | |
}, | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'INT', | |
name: 'isReturn', | |
}, | |
] | |
}, | |
{ | |
id: 'RefTest', | |
fields: [ | |
{ | |
form: 'TYPE', | |
name: 'castType', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'RefCast', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'BrOn', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'SCOPE_NAME_USE', | |
name: 'name', | |
}, | |
{ | |
form: 'TYPE', | |
name: 'castType', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StructNew', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
] | |
}, | |
{ | |
id: 'StructGet', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
{ | |
form: 'INT', | |
name: 'signed_', | |
}, | |
] | |
}, | |
{ | |
id: 'StructSet', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayNew', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'init', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayNewData', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'segment', | |
kind: 'DataSegment', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'offset', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayNewElem', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'segment', | |
kind: 'ElementSegment', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'offset', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayNewFixed', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'values', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayGet', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
{ | |
form: 'INT', | |
name: 'signed_', | |
}, | |
] | |
}, | |
{ | |
id: 'ArraySet', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayLen', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayCopy', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'length', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'srcIndex', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'srcRef', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'destIndex', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'destRef', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayFill', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayInitData', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'segment', | |
kind: 'DataSegment', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'offset', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'ArrayInitElem', | |
fields: [ | |
{ | |
form: 'NAME_KIND', | |
name: 'segment', | |
kind: 'ElementSegment', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'size', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'offset', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'index', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'RefAs', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'value', | |
}, | |
] | |
}, | |
{ | |
id: 'StringNew', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'INT', | |
name: 'try_', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'end', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'start', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'length', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
] | |
}, | |
{ | |
id: 'StringConst', | |
fields: [ | |
{ | |
form: 'NAME', | |
name: 'string', | |
}, | |
] | |
}, | |
{ | |
id: 'StringMeasure', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringEncode', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'OPTIONAL_CHILD', | |
name: 'start', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ptr', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringConcat', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'right', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'left', | |
}, | |
] | |
}, | |
{ | |
id: 'StringEq', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'right', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'left', | |
}, | |
] | |
}, | |
{ | |
id: 'StringAs', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringWTF8Advance', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'bytes', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'pos', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringWTF16Get', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'pos', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringIterNext', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringIterMove', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'num', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringSliceWTF', | |
fields: [ | |
{ | |
form: 'INT', | |
name: 'op', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'end', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'start', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'StringSliceIter', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'num', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'ref', | |
}, | |
] | |
}, | |
{ | |
id: 'ContBind', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'cont', | |
}, | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'HEAPTYPE', | |
name: 'contTypeAfter', | |
}, | |
{ | |
form: 'HEAPTYPE', | |
name: 'contTypeBefore', | |
}, | |
] | |
}, | |
{ | |
id: 'ContNew', | |
fields: [ | |
{ | |
form: 'CHILD', | |
name: 'func', | |
}, | |
{ | |
form: 'HEAPTYPE', | |
name: 'contType', | |
}, | |
] | |
}, | |
{ | |
id: 'Resume', | |
fields: [ | |
{ | |
form: 'TYPE_VECTOR', | |
name: 'sentTypes', | |
}, | |
{ | |
form: 'CHILD', | |
name: 'cont', | |
}, | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'SCOPE_NAME_USE_VECTOR', | |
name: 'handlerBlocks', | |
}, | |
{ | |
form: 'NAME_KIND_VECTOR', | |
name: 'handlerTags', | |
kind: 'Tag', | |
}, | |
{ | |
form: 'HEAPTYPE', | |
name: 'contType', | |
}, | |
] | |
}, | |
{ | |
id: 'Suspend', | |
fields: [ | |
{ | |
form: 'CHILD_VECTOR', | |
name: 'operands', | |
}, | |
{ | |
form: 'NAME_KIND', | |
name: 'tag', | |
kind: 'Tag', | |
}, | |
] | |
}, | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment