webassemblyjs
Advanced tools
Comparing version 1.4.3 to 1.5.0
@@ -11,2 +11,4 @@ "use strict"; | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
var t = require("@webassemblyjs/ast"); | ||
@@ -32,2 +34,4 @@ | ||
return function hostfunc() { | ||
var _stackFrame$locals; | ||
var exportinstAddr = exportinst.value.addr; | ||
@@ -82,4 +86,7 @@ /** | ||
}); | ||
var stackFrame = createStackFrame(funcinst.code, argsWithType, funcinst.module, allocator); // 2. Enter the block instr∗ with label | ||
var stackFrame = createStackFrame(funcinst.code, argsWithType, funcinst.module, allocator); // push func's params into stackFrame locals | ||
(_stackFrame$locals = stackFrame.locals).push.apply(_stackFrame$locals, _toConsumableArray(argsWithType)); // 2. Enter the block instr∗ with label | ||
stackFrame.values.push(label.createValue(exportinst.name)); | ||
@@ -86,0 +93,0 @@ stackFrame.labels.push({ |
@@ -62,3 +62,3 @@ "use strict"; | ||
if (depth >= 300) { | ||
throw new _errors.RuntimeError("Maximum call stack depth reached"); | ||
throw new _errors.RuntimeError("Maximum call stack depth reached (".concat(depth, ")")); | ||
} | ||
@@ -78,8 +78,7 @@ } | ||
(function () { | ||
if (!(frame !== undefined)) { | ||
throw new _errors.RuntimeError("Assertion error: " + ("no frame at " + framepointer || "unknown")); | ||
} | ||
})(); | ||
if (!("no frame at " + framepointer)) { | ||
throw new _errors.RuntimeError("Assertion error: " + (frame !== undefined || "unknown")); | ||
} | ||
undefined; | ||
framepointer++; | ||
@@ -98,8 +97,7 @@ | ||
function setLocalByIndex(index, value) { | ||
(function () { | ||
if (!(typeof index === "number")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
})(); | ||
if (!(typeof index === "number")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
undefined; | ||
frame.locals[index] = value; | ||
@@ -117,8 +115,9 @@ } | ||
function popArrayOfValTypes(types) { | ||
(function () { | ||
if (frame.values.length < types.length) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + types.length + " on the stack, found " + frame.values.length); | ||
} | ||
})(); | ||
var s = types.length; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
return types.map(function (type) { | ||
@@ -130,8 +129,9 @@ return pop1OfType(type); | ||
function pop1OfType(type) { | ||
(function () { | ||
if (frame.values.length < 1) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + 1 + " on the stack, found " + frame.values.length); | ||
} | ||
})(); | ||
var s = 1; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
var v = frame.values.pop(); | ||
@@ -147,8 +147,9 @@ | ||
function pop1() { | ||
(function () { | ||
if (frame.values.length < 1) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + 1 + " on the stack, found " + frame.values.length); | ||
} | ||
})(); | ||
var s = 1; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
return frame.values.pop(); | ||
@@ -158,8 +159,9 @@ } | ||
function pop2(type1, type2) { | ||
(function () { | ||
if (frame.values.length < 2) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + 2 + " on the stack, found " + frame.values.length); | ||
} | ||
})(); | ||
var s = 2; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
var c2 = frame.values.pop(); | ||
@@ -256,8 +258,7 @@ var c1 = frame.values.pop(); | ||
(function () { | ||
if (!(frame !== undefined)) { | ||
throw new _errors.RuntimeError("Assertion error: " + ("no active frame" || "unknown")); | ||
} | ||
})(); | ||
if (!"no active frame") { | ||
throw new _errors.RuntimeError("Assertion error: " + (frame !== undefined || "unknown")); | ||
} | ||
undefined; | ||
var nextStackFrame = stackframe.createChildStackFrame(frame, instrs); | ||
@@ -287,8 +288,8 @@ | ||
(function () { | ||
if (!(instruction !== undefined)) { | ||
throw new _errors.RuntimeError("Assertion error: " + ("no instruction at pc ".concat(frame._pc, " in frame ").concat(framepointer) || "unknown")); | ||
} | ||
})(); | ||
if (!"no instruction at pc ".concat(frame._pc, " in frame ").concat(framepointer)) { | ||
throw new _errors.RuntimeError("Assertion error: " + (instruction !== undefined || "unknown")); | ||
} | ||
undefined; | ||
if (typeof frame.trace === "function") { | ||
@@ -336,13 +337,13 @@ frame.trace(framepointer, frame._pc, instruction, frame); | ||
// https://webassembly.github.io/spec/core/exec/instructions.html#exec-const | ||
var n = instruction.args[0]; | ||
var _n = instruction.args[0]; | ||
if (typeof n === "undefined") { | ||
if (typeof _n === "undefined") { | ||
throw newRuntimeError("const requires one argument, none given."); | ||
} | ||
if (n.type !== "NumberLiteral" && n.type !== "LongNumberLiteral" && n.type !== "FloatLiteral") { | ||
throw newRuntimeError("const: unsupported value of type: " + n.type); | ||
if (_n.type !== "NumberLiteral" && _n.type !== "LongNumberLiteral" && _n.type !== "FloatLiteral") { | ||
throw newRuntimeError("const: unsupported value of type: " + _n.type); | ||
} | ||
pushResult(castIntoStackLocalOfType(instruction.object, n.value)); | ||
pushResult(castIntoStackLocalOfType(instruction.object, _n.value)); | ||
break; | ||
@@ -369,9 +370,8 @@ } | ||
(function () { | ||
if (!(_typeof(loop.instr) === "object" && typeof loop.instr.length !== "undefined")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
})(); // 2. Enter the block instr∗ with label | ||
if (!(_typeof(loop.instr) === "object" && typeof loop.instr.length !== "undefined")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
undefined; | ||
// 2. Enter the block instr∗ with label | ||
frame.labels.push({ | ||
@@ -397,9 +397,10 @@ value: loop, | ||
// 1. Assert: due to validation, a value is on the top of the stack. | ||
(function () { | ||
if (frame.values.length < 1) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + 1 + " on the stack, found " + frame.values.length); | ||
} | ||
})(); // 2. Pop the value valval from the stack. | ||
var s = 1; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
// 2. Pop the value valval from the stack. | ||
pop1(); | ||
@@ -424,9 +425,8 @@ break; | ||
(function () { | ||
if (!(typeof frame.originatingModule !== "undefined")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
})(); // 2. Assert: due to validation, F.module.funcaddrs[x] exists. | ||
if (!(typeof frame.originatingModule !== "undefined")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
undefined; | ||
// 2. Assert: due to validation, F.module.funcaddrs[x] exists. | ||
var funcaddr = frame.originatingModule.funcaddrs[index]; | ||
@@ -493,8 +493,8 @@ | ||
(function () { | ||
if (!(_typeof(block.instr) === "object" && typeof block.instr.length !== "undefined")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
})(); | ||
if (!(_typeof(block.instr) === "object" && typeof block.instr.length !== "undefined")) { | ||
throw new _errors.RuntimeError("Assertion error: " + (undefined || "unknown")); | ||
} | ||
undefined; | ||
if (block.instr.length > 0) { | ||
@@ -553,9 +553,10 @@ var oldStackSize = frame.values.length; | ||
(function () { | ||
if (frame.values.length < l + 1) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + (l + 1) + " on the stack, found " + frame.values.length); | ||
} | ||
})(); // 2. Let L be the l-th label appearing on the stack, starting from the top and counting from zero. | ||
var s = l + 1; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
// 2. Let L be the l-th label appearing on the stack, starting from the top and counting from zero. | ||
var seenLabels = 0; | ||
@@ -589,9 +590,10 @@ var labelidx = { | ||
(function () { | ||
if (frame.values.length < n) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + n + " on the stack, found " + frame.values.length); | ||
} | ||
})(); // 5. Pop the values valn from the stack | ||
var s = n; | ||
if (frame.values.length < s) { | ||
throw new _errors.RuntimeError("Assertion error: expected " + s + " on the stack, found " + frame.values.length); | ||
} | ||
undefined; | ||
// 5. Pop the values valn from the stack | ||
var val = frame.values[n]; | ||
@@ -598,0 +600,0 @@ var bottomOfTheStack = frame.values.slice(0, n); |
@@ -10,2 +10,4 @@ "use strict"; | ||
var _nodes = require("@webassemblyjs/ast/lib/nodes"); | ||
var WebAssemblyMemory = _interopRequireWildcard(require("./memory")); | ||
@@ -369,3 +371,3 @@ | ||
function createModuleExport(node, instantiatedItemArray, validate) { | ||
if (node.descr.id.type === "Identifier") { | ||
if ((0, _nodes.isIdentifier)(node.descr.id) === true) { | ||
var instantiatedItem = instantiatedItemArray[node.descr.id.value]; | ||
@@ -381,2 +383,15 @@ validate(instantiatedItem); | ||
}); | ||
} else if ((0, _nodes.isNumberLiteral)(node.descr.id) === true) { | ||
var keys = Object.keys(instantiatedItemArray); // $FlowIgnore | ||
var _instantiatedItem = instantiatedItemArray[keys[node.descr.id.value]]; | ||
validate(_instantiatedItem); | ||
assertNotAlreadyExported(node.name); | ||
moduleInstance.exports.push({ | ||
name: node.name, | ||
value: { | ||
type: node.descr.exportType, | ||
addr: _instantiatedItem.addr | ||
} | ||
}); | ||
} else { | ||
@@ -383,0 +398,0 @@ throw new CompileError("Module exports must be referenced via an Identifier"); |
{ | ||
"name": "webassemblyjs", | ||
"version": "1.4.3", | ||
"version": "1.5.0", | ||
"keywords": [ | ||
@@ -21,10 +21,11 @@ "webassembly", | ||
"dependencies": { | ||
"@webassemblyjs/ast": "1.4.3", | ||
"@webassemblyjs/validation": "1.4.3", | ||
"@webassemblyjs/wasm-parser": "1.4.3", | ||
"@webassemblyjs/wast-parser": "1.4.3", | ||
"@webassemblyjs/ast": "1.5.0", | ||
"@webassemblyjs/validation": "1.5.0", | ||
"@webassemblyjs/wasm-parser": "1.5.0", | ||
"@webassemblyjs/wast-parser": "1.5.0", | ||
"long": "^3.2.0" | ||
}, | ||
"devDependencies": { | ||
"@webassemblyjs/floating-point-hex-parser": "1.4.3" | ||
"@webassemblyjs/floating-point-hex-parser": "1.5.0", | ||
"wabt": "^1.0.0" | ||
}, | ||
@@ -31,0 +32,0 @@ "repository": { |
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
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
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
136496
33
3599
2
2
+ Added@webassemblyjs/ast@1.5.0(transitive)
+ Added@webassemblyjs/floating-point-hex-parser@1.5.0(transitive)
+ Added@webassemblyjs/helper-code-frame@1.5.0(transitive)
+ Added@webassemblyjs/helper-fsm@1.5.0(transitive)
+ Added@webassemblyjs/helper-wasm-bytecode@1.5.0(transitive)
+ Added@webassemblyjs/leb128@1.5.0(transitive)
+ Added@webassemblyjs/validation@1.5.0(transitive)
+ Added@webassemblyjs/wasm-parser@1.5.0(transitive)
+ Added@webassemblyjs/wast-parser@1.5.0(transitive)
+ Added@webassemblyjs/wast-printer@1.5.0(transitive)
+ Addeddebug@3.0.1(transitive)
+ Addedms@2.0.0(transitive)
- Removed@webassemblyjs/ast@1.4.3(transitive)
- Removed@webassemblyjs/floating-point-hex-parser@1.4.3(transitive)
- Removed@webassemblyjs/helper-code-frame@1.4.3(transitive)
- Removed@webassemblyjs/helper-fsm@1.4.3(transitive)
- Removed@webassemblyjs/helper-wasm-bytecode@1.4.3(transitive)
- Removed@webassemblyjs/leb128@1.4.3(transitive)
- Removed@webassemblyjs/validation@1.4.3(transitive)
- Removed@webassemblyjs/wasm-parser@1.4.3(transitive)
- Removed@webassemblyjs/wast-parser@1.4.3(transitive)
- Removed@webassemblyjs/wast-printer@1.4.3(transitive)
Updated@webassemblyjs/ast@1.5.0