@webassemblyjs/wasm-edit
Advanced tools
Comparing version 1.2.8 to 1.3.0
@@ -17,4 +17,10 @@ "use strict"; | ||
var _helperWasmSection = require("@webassemblyjs/helper-wasm-section"); | ||
var _helperWasmBytecode = _interopRequireDefault(require("@webassemblyjs/helper-wasm-bytecode")); | ||
var _apply = require("./apply"); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function hashNode(node) { | ||
@@ -35,2 +41,18 @@ return JSON.stringify(node); | ||
function sortBySectionOrder(nodes) { | ||
nodes.sort(function (a, b) { | ||
var sectionA = (0, _helperWasmSection.getSectionForNode)(a); | ||
var sectionB = (0, _helperWasmSection.getSectionForNode)(b); | ||
var aId = _helperWasmBytecode.default.sections[sectionA]; | ||
var bId = _helperWasmBytecode.default.sections[sectionB]; | ||
if (typeof aId !== "number" || typeof bId !== "number") { | ||
throw new Error("Section id not found"); | ||
} // $FlowIgnore ensured above | ||
return aId > bId; | ||
}); | ||
} | ||
function edit(ab, visitors) { | ||
@@ -68,3 +90,5 @@ var operations = []; | ||
function add(ab, newNodes) { | ||
ab = preprocess(ab); | ||
ab = preprocess(ab); // Sort nodes by insertion order | ||
sortBySectionOrder(newNodes); | ||
var ast = (0, _wasmParser.decode)(ab, decoderOpts); | ||
@@ -71,0 +95,0 @@ var uint8Buffer = new Uint8Array(ab); // Map node into operations |
{ | ||
"name": "@webassemblyjs/wasm-edit", | ||
"version": "1.2.8", | ||
"version": "1.3.0", | ||
"description": "", | ||
@@ -19,15 +19,15 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"@webassemblyjs/ast": "1.2.8", | ||
"@webassemblyjs/helper-buffer": "1.2.8", | ||
"@webassemblyjs/helper-wasm-bytecode": "1.2.8", | ||
"@webassemblyjs/helper-wasm-section": "1.2.8", | ||
"@webassemblyjs/wasm-gen": "1.2.8", | ||
"@webassemblyjs/wasm-opt": "1.2.8", | ||
"@webassemblyjs/wasm-parser": "1.2.8", | ||
"@webassemblyjs/wast-printer": "1.2.8", | ||
"@webassemblyjs/ast": "1.3.0", | ||
"@webassemblyjs/helper-buffer": "1.3.0", | ||
"@webassemblyjs/helper-wasm-bytecode": "1.3.0", | ||
"@webassemblyjs/helper-wasm-section": "1.3.0", | ||
"@webassemblyjs/wasm-gen": "1.3.0", | ||
"@webassemblyjs/wasm-opt": "1.3.0", | ||
"@webassemblyjs/wasm-parser": "1.3.0", | ||
"@webassemblyjs/wast-printer": "1.3.0", | ||
"debug": "^3.1.0" | ||
}, | ||
"devDependencies": { | ||
"@webassemblyjs/helper-test-framework": "1.2.8" | ||
"@webassemblyjs/helper-test-framework": "1.3.0" | ||
} | ||
} |
@@ -7,2 +7,4 @@ // @flow | ||
import { shrinkPaddedLEB128 } from "@webassemblyjs/wasm-opt"; | ||
import { getSectionForNode } from "@webassemblyjs/helper-wasm-section"; | ||
import constants from "@webassemblyjs/helper-wasm-bytecode"; | ||
@@ -26,2 +28,19 @@ import { applyOperations } from "./apply"; | ||
function sortBySectionOrder(nodes: Array<Node>) { | ||
nodes.sort((a, b) => { | ||
const sectionA = getSectionForNode(a); | ||
const sectionB = getSectionForNode(b); | ||
const aId = constants.sections[sectionA]; | ||
const bId = constants.sections[sectionB]; | ||
if (typeof aId !== "number" || typeof bId !== "number") { | ||
throw new Error("Section id not found"); | ||
} | ||
// $FlowIgnore ensured above | ||
return aId > bId; | ||
}); | ||
} | ||
export function edit(ab: ArrayBuffer, visitors: Object): ArrayBuffer { | ||
@@ -68,2 +87,5 @@ const operations: Array<Operation> = []; | ||
// Sort nodes by insertion order | ||
sortBySectionOrder(newNodes); | ||
const ast = decode(ab, decoderOpts); | ||
@@ -70,0 +92,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
41253
9
1146
+ Added@webassemblyjs/ast@1.3.0(transitive)
+ Added@webassemblyjs/floating-point-hex-parser@1.3.0(transitive)
+ Added@webassemblyjs/helper-buffer@1.3.0(transitive)
+ Added@webassemblyjs/helper-code-frame@1.3.0(transitive)
+ Added@webassemblyjs/helper-fsm@1.3.0(transitive)
+ Added@webassemblyjs/helper-wasm-bytecode@1.3.0(transitive)
+ Added@webassemblyjs/helper-wasm-section@1.3.0(transitive)
+ Added@webassemblyjs/leb128@1.3.0(transitive)
+ Added@webassemblyjs/validation@1.3.0(transitive)
+ Added@webassemblyjs/wasm-gen@1.3.0(transitive)
+ Added@webassemblyjs/wasm-opt@1.3.0(transitive)
+ Added@webassemblyjs/wasm-parser@1.3.0(transitive)
+ Added@webassemblyjs/wast-parser@1.3.0(transitive)
+ Added@webassemblyjs/wast-printer@1.3.0(transitive)
+ Addedwebassemblyjs@1.3.0(transitive)
- Removed@webassemblyjs/ast@1.2.8(transitive)
- Removed@webassemblyjs/floating-point-hex-parser@1.2.8(transitive)
- Removed@webassemblyjs/helper-buffer@1.2.8(transitive)
- Removed@webassemblyjs/helper-code-frame@1.2.8(transitive)
- Removed@webassemblyjs/helper-fsm@1.2.8(transitive)
- Removed@webassemblyjs/helper-wasm-bytecode@1.2.8(transitive)
- Removed@webassemblyjs/helper-wasm-section@1.2.8(transitive)
- Removed@webassemblyjs/leb128@1.2.8(transitive)
- Removed@webassemblyjs/validation@1.2.8(transitive)
- Removed@webassemblyjs/wasm-gen@1.2.8(transitive)
- Removed@webassemblyjs/wasm-opt@1.2.8(transitive)
- Removed@webassemblyjs/wasm-parser@1.2.8(transitive)
- Removed@webassemblyjs/wast-parser@1.2.8(transitive)
- Removed@webassemblyjs/wast-printer@1.2.8(transitive)
- Removedwebassemblyjs@1.2.8(transitive)
Updated@webassemblyjs/ast@1.3.0