| const fs = require('fs'); |
| const process = require('process'); |
| const assert = require('assert'); |
| const buffer = fs.readFileSync(process.argv[2]); |
| |
| let m = new WebAssembly.Module(buffer); |
| let sections = WebAssembly.Module.customSections(m, "baz"); |
| console.log('section baz', sections); |
| assert.strictEqual(sections.length, 1); |
| let section = new Uint8Array(sections[0]); |
| console.log('contents', section); |
| assert.strictEqual(section.length, 2); |
| assert.strictEqual(section[0], 7); |
| assert.strictEqual(section[1], 8); |
| |
| sections = WebAssembly.Module.customSections(m, "bar"); |
| console.log('section bar', sections); |
| assert.strictEqual(sections.length, 1, "didn't pick up `bar` section from dependency"); |
| section = new Uint8Array(sections[0]); |
| console.log('contents', section); |
| assert.strictEqual(section.length, 2); |
| assert.strictEqual(section[0], 3); |
| assert.strictEqual(section[1], 4); |
| |
| sections = WebAssembly.Module.customSections(m, "foo"); |
| console.log('section foo', sections); |
| assert.strictEqual(sections.length, 1, "didn't create `foo` section"); |
| section = new Uint8Array(sections[0]); |
| console.log('contents', section); |
| assert.strictEqual(section.length, 4, "didn't concatenate `foo` sections"); |
| assert.strictEqual(section[0], 5); |
| assert.strictEqual(section[1], 6); |
| assert.strictEqual(section[2], 1); |
| assert.strictEqual(section[3], 2); |
| |
| process.exit(0); |