summaryrefslogtreecommitdiff
path: root/src/js/binaryen.idl
blob: 6a1d63d8a0fba69c327f4f4f090e49d4dc664ed6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

interface Literal {
  void Literal(double x);
  double getf64();
};

interface Name {
  void Name(DOMString x);

  [Const] DOMString c_str();
};

interface Module {
  void Module();
};

[Prefix="ModuleInstance::", NoDelete]
interface ExternalInterface {
};

interface ShellExternalInterface {
  void ShellExternalInterface();
};

ShellExternalInterface implements ExternalInterface;

interface ModuleInstance {
  void ModuleInstance([Ref] Module m, ExternalInterface i);

  [Value] Literal callExport([Ref] Name name, [Ref] LiteralList arguments);
};

[Prefix="ModuleInstance::"]
interface LiteralList {
  void LiteralList();

  void push_back([Ref] Literal l);
};

// S-Expressions

interface Element {
  boolean isList();
  boolean isStr();
  void dump();

  // list methods
  [Operator="[]"] Element getChild(long i);
  long size();

  // string methods
  [Const] DOMString c_str();
};

interface SExpressionParser {
  void SExpressionParser(DOMString input);
  attribute Element root;
};

interface SExpressionWasmBuilder {
  void SExpressionWasmBuilder([Ref] Module wasm, [Ref] Element input);
};

// Wasm printing

interface WasmPrinter {
  static void printModule(Module m);
};