Skip to content

local.get or get_local #1105

@coderaiser

Description

@coderaiser

MDN says and wabt thinks that local.get:

inline:4:7: error: unexpected token get_local, expected ).
      get_local $n1
      ^^^^^^^^^

With such code:

import { traverse } from "@webassemblyjs/ast";
import { parse } from "@webassemblyjs/wast-parser";

const code = `
  (module
    (func (export "add") (param $n1 i32) (param $n2 i32) (result i32)
      local.get $n1
      local.get $n2
      i32.add)
  )
`;

const ast = parse(code);

I see crash:

/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:946
            return new Error("\n" + (0, _helperCodeFrame.codeFrameFromSource)(source, token.loc) + "\n" + "Unexpected token in instruction argument" + ", given " + tokenToString(token));
                   ^

Error:
  (module
    (func (export "add") (param $n1 i32) (param $n2 i32) (result i32)
      local.get $n1
      local.get $n2
     ^^^^^
      i32.add)
  )


Unexpected token in instruction argument, given name
    at /Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:946:20
    at parseFuncInstrArguments (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:947:12)
    at parseFuncInstr (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:1068:37)
    at parseFunc (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:1182:23)
    at walk (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:1623:22)
    at parseModule (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:858:27)
    at walk (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:1635:22)
    at Object.parse (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/grammar.js:1776:15)
    at parse (/Users/coderaiser/webasm/node_modules/@webassemblyjs/wast-parser/lib/index.js:33:20)
    at file:///Users/coderaiser/webasm/index.mjs:14:13

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions