summaryrefslogtreecommitdiff
path: root/demo/wast2wasm/examples.js
blob: 05f07571b2aef8b613ccf6aab4f1713be1c9e7c5 (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
70
/*
 * Copyright 2016 WebAssembly Community Group participants
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

var examples = [
  {
    name: 'empty',
    contents: '(module)'
  },

  {
    name: 'simple',
    contents:
      '(module\n' +
      '  (func $addTwo (param i32 i32) (result i32)\n' +
      '    get_local 0\n' +
      '    get_local 1\n' +
      '    i32.add)\n' +
      '  (export "addTwo" (func $addTwo)))\n'
  },

  {
    name: 'factorial',
    contents:
      '(module\n' +
      '  (func $fac (param i64) (result i64)\n' +
      '    get_local 0\n' +
      '    i64.const 1\n' +
      '    i64.lt_s\n' +
      '    if (result i64)\n' +
      '      i64.const 1\n' +
      '    else\n' +
      '      get_local 0\n' +
      '      get_local 0\n' +
      '      i64.const 1\n' +
      '      i64.sub\n' +
      '      call $fac\n' +
      '      i64.mul\n' +
      '    end)\n' +
      '  (export "fac" (func $fac)))\n'
  },

  {
    name: 'stuff',
    contents:
      '(module\n' +
      '  (import "foo" "bar" (func (param f32)))\n' +
      '  (memory (data "hi"))\n' +
      '  (type (func (param i32) (result i32)))\n' +
      '  (start 1)\n' +
      '  (table 0 1 anyfunc)\n' +
      '  (func)\n' +
      '  (func (type 1)\n' +
      '    i32.const 42\n' +
      '    drop)\n' +
      '  (export "e" (func 1)))\n'
  }
];