@webassemblyjs/ast
Advanced tools
| function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
| function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
| function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } | ||
| // TODO(sven): add flow in here | ||
| import { isSignature, isNumberLiteral } from "../../nodes.js"; | ||
| export function moduleContextFromModuleAST(m) { | ||
| var moduleContext = new ModuleContext(); | ||
| if (!(m.type === "Module")) { | ||
| throw new Error('m.type === "Module"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| m.fields.forEach(function (field) { | ||
| switch (field.type) { | ||
| case "Start": | ||
| { | ||
| moduleContext.setStart(field.index); | ||
| break; | ||
| } | ||
| case "TypeInstruction": | ||
| { | ||
| moduleContext.addType(field); | ||
| break; | ||
| } | ||
| case "Func": | ||
| { | ||
| moduleContext.addFunction(field); | ||
| break; | ||
| } | ||
| case "Global": | ||
| { | ||
| moduleContext.defineGlobal(field); | ||
| break; | ||
| } | ||
| case "ModuleImport": | ||
| { | ||
| switch (field.descr.type) { | ||
| case "GlobalType": | ||
| { | ||
| moduleContext.importGlobal(field.descr.valtype, field.descr.mutability); | ||
| break; | ||
| } | ||
| case "Memory": | ||
| { | ||
| moduleContext.addMemory(field.descr.limits.min, field.descr.limits.max); | ||
| break; | ||
| } | ||
| case "FuncImportDescr": | ||
| { | ||
| moduleContext.importFunction(field.descr); | ||
| break; | ||
| } | ||
| case "Table": | ||
| { | ||
| // FIXME(sven): not implemented yet | ||
| break; | ||
| } | ||
| default: | ||
| throw new Error("Unsupported ModuleImport of type " + JSON.stringify(field.descr.type)); | ||
| } | ||
| break; | ||
| } | ||
| case "Memory": | ||
| { | ||
| moduleContext.addMemory(field.limits.min, field.limits.max); | ||
| break; | ||
| } | ||
| } | ||
| }); | ||
| return moduleContext; | ||
| } | ||
| /** | ||
| * Module context for type checking | ||
| */ | ||
| export var ModuleContext = | ||
| /*#__PURE__*/ | ||
| function () { | ||
| function ModuleContext() { | ||
| _classCallCheck(this, ModuleContext); | ||
| this.funcs = []; | ||
| this.funcsOffsetByIdentifier = []; | ||
| this.types = []; | ||
| this.globals = []; | ||
| this.globalsOffsetByIdentifier = []; | ||
| this.mems = []; // Current stack frame | ||
| this.locals = []; | ||
| this.labels = []; | ||
| this.return = []; | ||
| this.debugName = "unknown"; | ||
| this.start = null; | ||
| } | ||
| /** | ||
| * Set start segment | ||
| */ | ||
| _createClass(ModuleContext, [{ | ||
| key: "setStart", | ||
| value: function setStart(index) { | ||
| this.start = index.value; | ||
| } | ||
| /** | ||
| * Get start function | ||
| */ | ||
| }, { | ||
| key: "getStart", | ||
| value: function getStart() { | ||
| return this.start; | ||
| } | ||
| /** | ||
| * Reset the active stack frame | ||
| */ | ||
| }, { | ||
| key: "newContext", | ||
| value: function newContext(debugName, expectedResult) { | ||
| this.locals = []; | ||
| this.labels = [expectedResult]; | ||
| this.return = expectedResult; | ||
| this.debugName = debugName; | ||
| } | ||
| /** | ||
| * Functions | ||
| */ | ||
| }, { | ||
| key: "addFunction", | ||
| value: function addFunction(func | ||
| /*: Func*/ | ||
| ) { | ||
| // eslint-disable-next-line prefer-const | ||
| var _ref = func.signature || {}, | ||
| _ref$params = _ref.params, | ||
| args = _ref$params === void 0 ? [] : _ref$params, | ||
| _ref$results = _ref.results, | ||
| result = _ref$results === void 0 ? [] : _ref$results; | ||
| args = args.map(function (arg) { | ||
| return arg.valtype; | ||
| }); | ||
| this.funcs.push({ | ||
| args: args, | ||
| result: result | ||
| }); | ||
| if (typeof func.name !== "undefined") { | ||
| this.funcsOffsetByIdentifier[func.name.value] = this.funcs.length - 1; | ||
| } | ||
| } | ||
| }, { | ||
| key: "importFunction", | ||
| value: function importFunction(funcimport) { | ||
| if (isSignature(funcimport.signature)) { | ||
| // eslint-disable-next-line prefer-const | ||
| var _funcimport$signature = funcimport.signature, | ||
| args = _funcimport$signature.params, | ||
| result = _funcimport$signature.results; | ||
| args = args.map(function (arg) { | ||
| return arg.valtype; | ||
| }); | ||
| this.funcs.push({ | ||
| args: args, | ||
| result: result | ||
| }); | ||
| } else { | ||
| if (!isNumberLiteral(funcimport.signature)) { | ||
| throw new Error('isNumberLiteral(funcimport.signature)' + " error: " + (undefined || "unknown")); | ||
| } | ||
| var typeId = funcimport.signature.value; | ||
| if (!this.hasType(typeId)) { | ||
| throw new Error('this.hasType(typeId)' + " error: " + (undefined || "unknown")); | ||
| } | ||
| var signature = this.getType(typeId); | ||
| this.funcs.push({ | ||
| args: signature.params.map(function (arg) { | ||
| return arg.valtype; | ||
| }), | ||
| result: signature.results | ||
| }); | ||
| } | ||
| if (typeof funcimport.id !== "undefined") { | ||
| // imports are first, we can assume their index in the array | ||
| this.funcsOffsetByIdentifier[funcimport.id.value] = this.funcs.length - 1; | ||
| } | ||
| } | ||
| }, { | ||
| key: "hasFunction", | ||
| value: function hasFunction(index) { | ||
| return typeof this.getFunction(index) !== "undefined"; | ||
| } | ||
| }, { | ||
| key: "getFunction", | ||
| value: function getFunction(index) { | ||
| if (typeof index !== "number") { | ||
| throw new Error("getFunction only supported for number index"); | ||
| } | ||
| return this.funcs[index]; | ||
| } | ||
| }, { | ||
| key: "getFunctionOffsetByIdentifier", | ||
| value: function getFunctionOffsetByIdentifier(name) { | ||
| if (!(typeof name === "string")) { | ||
| throw new Error('typeof name === "string"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| return this.funcsOffsetByIdentifier[name]; | ||
| } | ||
| /** | ||
| * Labels | ||
| */ | ||
| }, { | ||
| key: "addLabel", | ||
| value: function addLabel(result) { | ||
| this.labels.unshift(result); | ||
| } | ||
| }, { | ||
| key: "hasLabel", | ||
| value: function hasLabel(index) { | ||
| return this.labels.length > index && index >= 0; | ||
| } | ||
| }, { | ||
| key: "getLabel", | ||
| value: function getLabel(index) { | ||
| return this.labels[index]; | ||
| } | ||
| }, { | ||
| key: "popLabel", | ||
| value: function popLabel() { | ||
| this.labels.shift(); | ||
| } | ||
| /** | ||
| * Locals | ||
| */ | ||
| }, { | ||
| key: "hasLocal", | ||
| value: function hasLocal(index) { | ||
| return typeof this.getLocal(index) !== "undefined"; | ||
| } | ||
| }, { | ||
| key: "getLocal", | ||
| value: function getLocal(index) { | ||
| return this.locals[index]; | ||
| } | ||
| }, { | ||
| key: "addLocal", | ||
| value: function addLocal(type) { | ||
| this.locals.push(type); | ||
| } | ||
| /** | ||
| * Types | ||
| */ | ||
| }, { | ||
| key: "addType", | ||
| value: function addType(type) { | ||
| if (!(type.functype.type === "Signature")) { | ||
| throw new Error('type.functype.type === "Signature"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| this.types.push(type.functype); | ||
| } | ||
| }, { | ||
| key: "hasType", | ||
| value: function hasType(index) { | ||
| return this.types[index] !== undefined; | ||
| } | ||
| }, { | ||
| key: "getType", | ||
| value: function getType(index) { | ||
| return this.types[index]; | ||
| } | ||
| /** | ||
| * Globals | ||
| */ | ||
| }, { | ||
| key: "hasGlobal", | ||
| value: function hasGlobal(index) { | ||
| return this.globals.length > index && index >= 0; | ||
| } | ||
| }, { | ||
| key: "getGlobal", | ||
| value: function getGlobal(index) { | ||
| return this.globals[index].type; | ||
| } | ||
| }, { | ||
| key: "getGlobalOffsetByIdentifier", | ||
| value: function getGlobalOffsetByIdentifier(name) { | ||
| if (!(typeof name === "string")) { | ||
| throw new Error('typeof name === "string"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| return this.globalsOffsetByIdentifier[name]; | ||
| } | ||
| }, { | ||
| key: "defineGlobal", | ||
| value: function defineGlobal(global | ||
| /*: Global*/ | ||
| ) { | ||
| var type = global.globalType.valtype; | ||
| var mutability = global.globalType.mutability; | ||
| this.globals.push({ | ||
| type: type, | ||
| mutability: mutability | ||
| }); | ||
| if (typeof global.name !== "undefined") { | ||
| this.globalsOffsetByIdentifier[global.name.value] = this.globals.length - 1; | ||
| } | ||
| } | ||
| }, { | ||
| key: "importGlobal", | ||
| value: function importGlobal(type, mutability) { | ||
| this.globals.push({ | ||
| type: type, | ||
| mutability: mutability | ||
| }); | ||
| } | ||
| }, { | ||
| key: "isMutableGlobal", | ||
| value: function isMutableGlobal(index) { | ||
| return this.globals[index].mutability === "var"; | ||
| } | ||
| }, { | ||
| key: "isImmutableGlobal", | ||
| value: function isImmutableGlobal(index) { | ||
| return this.globals[index].mutability === "const"; | ||
| } | ||
| /** | ||
| * Memories | ||
| */ | ||
| }, { | ||
| key: "hasMemory", | ||
| value: function hasMemory(index) { | ||
| return this.mems.length > index && index >= 0; | ||
| } | ||
| }, { | ||
| key: "addMemory", | ||
| value: function addMemory(min, max) { | ||
| this.mems.push({ | ||
| min: min, | ||
| max: max | ||
| }); | ||
| } | ||
| }, { | ||
| key: "getMemory", | ||
| value: function getMemory(index) { | ||
| return this.mems[index]; | ||
| } | ||
| }]); | ||
| return ModuleContext; | ||
| }(); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { | ||
| value: true | ||
| }); | ||
| exports.moduleContextFromModuleAST = moduleContextFromModuleAST; | ||
| exports.ModuleContext = void 0; | ||
| var _nodes = require("../../nodes.js"); | ||
| function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
| function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
| function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } | ||
| function moduleContextFromModuleAST(m) { | ||
| var moduleContext = new ModuleContext(); | ||
| if (!(m.type === "Module")) { | ||
| throw new Error('m.type === "Module"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| m.fields.forEach(function (field) { | ||
| switch (field.type) { | ||
| case "Start": | ||
| { | ||
| moduleContext.setStart(field.index); | ||
| break; | ||
| } | ||
| case "TypeInstruction": | ||
| { | ||
| moduleContext.addType(field); | ||
| break; | ||
| } | ||
| case "Func": | ||
| { | ||
| moduleContext.addFunction(field); | ||
| break; | ||
| } | ||
| case "Global": | ||
| { | ||
| moduleContext.defineGlobal(field); | ||
| break; | ||
| } | ||
| case "ModuleImport": | ||
| { | ||
| switch (field.descr.type) { | ||
| case "GlobalType": | ||
| { | ||
| moduleContext.importGlobal(field.descr.valtype, field.descr.mutability); | ||
| break; | ||
| } | ||
| case "Memory": | ||
| { | ||
| moduleContext.addMemory(field.descr.limits.min, field.descr.limits.max); | ||
| break; | ||
| } | ||
| case "FuncImportDescr": | ||
| { | ||
| moduleContext.importFunction(field.descr); | ||
| break; | ||
| } | ||
| case "Table": | ||
| { | ||
| // FIXME(sven): not implemented yet | ||
| break; | ||
| } | ||
| default: | ||
| throw new Error("Unsupported ModuleImport of type " + JSON.stringify(field.descr.type)); | ||
| } | ||
| break; | ||
| } | ||
| case "Memory": | ||
| { | ||
| moduleContext.addMemory(field.limits.min, field.limits.max); | ||
| break; | ||
| } | ||
| } | ||
| }); | ||
| return moduleContext; | ||
| } | ||
| /** | ||
| * Module context for type checking | ||
| */ | ||
| var ModuleContext = | ||
| /*#__PURE__*/ | ||
| function () { | ||
| function ModuleContext() { | ||
| _classCallCheck(this, ModuleContext); | ||
| this.funcs = []; | ||
| this.funcsOffsetByIdentifier = []; | ||
| this.types = []; | ||
| this.globals = []; | ||
| this.globalsOffsetByIdentifier = []; | ||
| this.mems = []; // Current stack frame | ||
| this.locals = []; | ||
| this.labels = []; | ||
| this.return = []; | ||
| this.debugName = "unknown"; | ||
| this.start = null; | ||
| } | ||
| /** | ||
| * Set start segment | ||
| */ | ||
| _createClass(ModuleContext, [{ | ||
| key: "setStart", | ||
| value: function setStart(index) { | ||
| this.start = index.value; | ||
| } | ||
| /** | ||
| * Get start function | ||
| */ | ||
| }, { | ||
| key: "getStart", | ||
| value: function getStart() { | ||
| return this.start; | ||
| } | ||
| /** | ||
| * Reset the active stack frame | ||
| */ | ||
| }, { | ||
| key: "newContext", | ||
| value: function newContext(debugName, expectedResult) { | ||
| this.locals = []; | ||
| this.labels = [expectedResult]; | ||
| this.return = expectedResult; | ||
| this.debugName = debugName; | ||
| } | ||
| /** | ||
| * Functions | ||
| */ | ||
| }, { | ||
| key: "addFunction", | ||
| value: function addFunction(func | ||
| /*: Func*/ | ||
| ) { | ||
| // eslint-disable-next-line prefer-const | ||
| var _ref = func.signature || {}, | ||
| _ref$params = _ref.params, | ||
| args = _ref$params === void 0 ? [] : _ref$params, | ||
| _ref$results = _ref.results, | ||
| result = _ref$results === void 0 ? [] : _ref$results; | ||
| args = args.map(function (arg) { | ||
| return arg.valtype; | ||
| }); | ||
| this.funcs.push({ | ||
| args: args, | ||
| result: result | ||
| }); | ||
| if (typeof func.name !== "undefined") { | ||
| this.funcsOffsetByIdentifier[func.name.value] = this.funcs.length - 1; | ||
| } | ||
| } | ||
| }, { | ||
| key: "importFunction", | ||
| value: function importFunction(funcimport) { | ||
| if ((0, _nodes.isSignature)(funcimport.signature)) { | ||
| // eslint-disable-next-line prefer-const | ||
| var _funcimport$signature = funcimport.signature, | ||
| args = _funcimport$signature.params, | ||
| result = _funcimport$signature.results; | ||
| args = args.map(function (arg) { | ||
| return arg.valtype; | ||
| }); | ||
| this.funcs.push({ | ||
| args: args, | ||
| result: result | ||
| }); | ||
| } else { | ||
| if (!(0, _nodes.isNumberLiteral)(funcimport.signature)) { | ||
| throw new Error('isNumberLiteral(funcimport.signature)' + " error: " + (undefined || "unknown")); | ||
| } | ||
| var typeId = funcimport.signature.value; | ||
| if (!this.hasType(typeId)) { | ||
| throw new Error('this.hasType(typeId)' + " error: " + (undefined || "unknown")); | ||
| } | ||
| var signature = this.getType(typeId); | ||
| this.funcs.push({ | ||
| args: signature.params.map(function (arg) { | ||
| return arg.valtype; | ||
| }), | ||
| result: signature.results | ||
| }); | ||
| } | ||
| if (typeof funcimport.id !== "undefined") { | ||
| // imports are first, we can assume their index in the array | ||
| this.funcsOffsetByIdentifier[funcimport.id.value] = this.funcs.length - 1; | ||
| } | ||
| } | ||
| }, { | ||
| key: "hasFunction", | ||
| value: function hasFunction(index) { | ||
| return typeof this.getFunction(index) !== "undefined"; | ||
| } | ||
| }, { | ||
| key: "getFunction", | ||
| value: function getFunction(index) { | ||
| if (typeof index !== "number") { | ||
| throw new Error("getFunction only supported for number index"); | ||
| } | ||
| return this.funcs[index]; | ||
| } | ||
| }, { | ||
| key: "getFunctionOffsetByIdentifier", | ||
| value: function getFunctionOffsetByIdentifier(name) { | ||
| if (!(typeof name === "string")) { | ||
| throw new Error('typeof name === "string"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| return this.funcsOffsetByIdentifier[name]; | ||
| } | ||
| /** | ||
| * Labels | ||
| */ | ||
| }, { | ||
| key: "addLabel", | ||
| value: function addLabel(result) { | ||
| this.labels.unshift(result); | ||
| } | ||
| }, { | ||
| key: "hasLabel", | ||
| value: function hasLabel(index) { | ||
| return this.labels.length > index && index >= 0; | ||
| } | ||
| }, { | ||
| key: "getLabel", | ||
| value: function getLabel(index) { | ||
| return this.labels[index]; | ||
| } | ||
| }, { | ||
| key: "popLabel", | ||
| value: function popLabel() { | ||
| this.labels.shift(); | ||
| } | ||
| /** | ||
| * Locals | ||
| */ | ||
| }, { | ||
| key: "hasLocal", | ||
| value: function hasLocal(index) { | ||
| return typeof this.getLocal(index) !== "undefined"; | ||
| } | ||
| }, { | ||
| key: "getLocal", | ||
| value: function getLocal(index) { | ||
| return this.locals[index]; | ||
| } | ||
| }, { | ||
| key: "addLocal", | ||
| value: function addLocal(type) { | ||
| this.locals.push(type); | ||
| } | ||
| /** | ||
| * Types | ||
| */ | ||
| }, { | ||
| key: "addType", | ||
| value: function addType(type) { | ||
| if (!(type.functype.type === "Signature")) { | ||
| throw new Error('type.functype.type === "Signature"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| this.types.push(type.functype); | ||
| } | ||
| }, { | ||
| key: "hasType", | ||
| value: function hasType(index) { | ||
| return this.types[index] !== undefined; | ||
| } | ||
| }, { | ||
| key: "getType", | ||
| value: function getType(index) { | ||
| return this.types[index]; | ||
| } | ||
| /** | ||
| * Globals | ||
| */ | ||
| }, { | ||
| key: "hasGlobal", | ||
| value: function hasGlobal(index) { | ||
| return this.globals.length > index && index >= 0; | ||
| } | ||
| }, { | ||
| key: "getGlobal", | ||
| value: function getGlobal(index) { | ||
| return this.globals[index].type; | ||
| } | ||
| }, { | ||
| key: "getGlobalOffsetByIdentifier", | ||
| value: function getGlobalOffsetByIdentifier(name) { | ||
| if (!(typeof name === "string")) { | ||
| throw new Error('typeof name === "string"' + " error: " + (undefined || "unknown")); | ||
| } | ||
| return this.globalsOffsetByIdentifier[name]; | ||
| } | ||
| }, { | ||
| key: "defineGlobal", | ||
| value: function defineGlobal(global | ||
| /*: Global*/ | ||
| ) { | ||
| var type = global.globalType.valtype; | ||
| var mutability = global.globalType.mutability; | ||
| this.globals.push({ | ||
| type: type, | ||
| mutability: mutability | ||
| }); | ||
| if (typeof global.name !== "undefined") { | ||
| this.globalsOffsetByIdentifier[global.name.value] = this.globals.length - 1; | ||
| } | ||
| } | ||
| }, { | ||
| key: "importGlobal", | ||
| value: function importGlobal(type, mutability) { | ||
| this.globals.push({ | ||
| type: type, | ||
| mutability: mutability | ||
| }); | ||
| } | ||
| }, { | ||
| key: "isMutableGlobal", | ||
| value: function isMutableGlobal(index) { | ||
| return this.globals[index].mutability === "var"; | ||
| } | ||
| }, { | ||
| key: "isImmutableGlobal", | ||
| value: function isImmutableGlobal(index) { | ||
| return this.globals[index].mutability === "const"; | ||
| } | ||
| /** | ||
| * Memories | ||
| */ | ||
| }, { | ||
| key: "hasMemory", | ||
| value: function hasMemory(index) { | ||
| return this.mems.length > index && index >= 0; | ||
| } | ||
| }, { | ||
| key: "addMemory", | ||
| value: function addMemory(min, max) { | ||
| this.mems.push({ | ||
| min: min, | ||
| max: max | ||
| }); | ||
| } | ||
| }, { | ||
| key: "getMemory", | ||
| value: function getMemory(index) { | ||
| return this.mems[index]; | ||
| } | ||
| }]); | ||
| return ModuleContext; | ||
| }(); | ||
| exports.ModuleContext = ModuleContext; |
+2
-1
@@ -6,2 +6,3 @@ export * from "./nodes"; | ||
| export * from "./utils"; | ||
| export { cloneNode } from "./clone"; | ||
| export { cloneNode } from "./clone"; | ||
| export { moduleContextFromModuleAST } from "./transform/ast-module-to-module-context"; |
@@ -1,2 +0,2 @@ | ||
| import { parse32F, parse64F, parse32I, parse64I, parseU32, isNanLiteral, isInfLiteral } from "@webassemblyjs/wast-parser"; | ||
| import { parse32F, parse64F, parse32I, parse64I, parseU32, isNanLiteral, isInfLiteral } from "@webassemblyjs/helper-numbers"; | ||
| import { longNumberLiteral, floatLiteral, numberLiteral, instr } from "./nodes"; | ||
@@ -3,0 +3,0 @@ export function numberLiteralFromRaw(rawValue) { |
@@ -8,3 +8,3 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
| import { isBlock, isFunc, isIdentifier, numberLiteralFromRaw, traverse } from "../../index"; | ||
| import { moduleContextFromModuleAST } from "@webassemblyjs/helper-module-context"; // FIXME(sven): do the same with all block instructions, must be more generic here | ||
| import { moduleContextFromModuleAST } from "../ast-module-to-module-context"; // FIXME(sven): do the same with all block instructions, must be more generic here | ||
@@ -11,0 +11,0 @@ function newUnexpectedFunction(i) { |
+11
-2
@@ -17,3 +17,4 @@ "use strict"; | ||
| signatures: true, | ||
| cloneNode: true | ||
| cloneNode: true, | ||
| moduleContextFromModuleAST: true | ||
| }; | ||
@@ -86,2 +87,8 @@ Object.defineProperty(exports, "numberLiteralFromRaw", { | ||
| }); | ||
| Object.defineProperty(exports, "moduleContextFromModuleAST", { | ||
| enumerable: true, | ||
| get: function get() { | ||
| return _astModuleToModuleContext.moduleContextFromModuleAST; | ||
| } | ||
| }); | ||
@@ -120,2 +127,4 @@ var _nodes = require("./nodes"); | ||
| var _clone = require("./clone"); | ||
| var _clone = require("./clone"); | ||
| var _astModuleToModuleContext = require("./transform/ast-module-to-module-context"); |
@@ -15,3 +15,3 @@ "use strict"; | ||
| var _wastParser = require("@webassemblyjs/wast-parser"); | ||
| var _helperNumbers = require("@webassemblyjs/helper-numbers"); | ||
@@ -34,3 +34,3 @@ var _nodes = require("./nodes"); | ||
| { | ||
| return (0, _nodes.numberLiteral)((0, _wastParser.parse32I)(rawValue), String(original)); | ||
| return (0, _nodes.numberLiteral)((0, _helperNumbers.parse32I)(rawValue), String(original)); | ||
| } | ||
@@ -40,3 +40,3 @@ | ||
| { | ||
| return (0, _nodes.numberLiteral)((0, _wastParser.parseU32)(rawValue), String(original)); | ||
| return (0, _nodes.numberLiteral)((0, _helperNumbers.parseU32)(rawValue), String(original)); | ||
| } | ||
@@ -46,3 +46,3 @@ | ||
| { | ||
| return (0, _nodes.longNumberLiteral)((0, _wastParser.parse64I)(rawValue), String(original)); | ||
| return (0, _nodes.longNumberLiteral)((0, _helperNumbers.parse64I)(rawValue), String(original)); | ||
| } | ||
@@ -52,3 +52,3 @@ | ||
| { | ||
| return (0, _nodes.floatLiteral)((0, _wastParser.parse32F)(rawValue), (0, _wastParser.isNanLiteral)(rawValue), (0, _wastParser.isInfLiteral)(rawValue), String(original)); | ||
| return (0, _nodes.floatLiteral)((0, _helperNumbers.parse32F)(rawValue), (0, _helperNumbers.isNanLiteral)(rawValue), (0, _helperNumbers.isInfLiteral)(rawValue), String(original)); | ||
| } | ||
@@ -59,3 +59,3 @@ // f64 | ||
| { | ||
| return (0, _nodes.floatLiteral)((0, _wastParser.parse64F)(rawValue), (0, _wastParser.isNanLiteral)(rawValue), (0, _wastParser.isInfLiteral)(rawValue), String(original)); | ||
| return (0, _nodes.floatLiteral)((0, _helperNumbers.parse64F)(rawValue), (0, _helperNumbers.isNanLiteral)(rawValue), (0, _helperNumbers.isInfLiteral)(rawValue), String(original)); | ||
| } | ||
@@ -62,0 +62,0 @@ } |
@@ -10,3 +10,3 @@ "use strict"; | ||
| var _helperModuleContext = require("@webassemblyjs/helper-module-context"); | ||
| var _astModuleToModuleContext = require("../ast-module-to-module-context"); | ||
@@ -41,3 +41,3 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
| }); | ||
| var moduleContext = (0, _helperModuleContext.moduleContextFromModuleAST)(module); // Transform the actual instruction in function bodies | ||
| var moduleContext = (0, _astModuleToModuleContext.moduleContextFromModuleAST)(module); // Transform the actual instruction in function bodies | ||
@@ -44,0 +44,0 @@ (0, _index.traverse)(ast, { |
+5
-6
| { | ||
| "name": "@webassemblyjs/ast", | ||
| "version": "1.9.1", | ||
| "version": "1.10.0", | ||
| "description": "AST utils for webassemblyjs", | ||
@@ -15,5 +15,4 @@ "keywords": [ | ||
| "dependencies": { | ||
| "@webassemblyjs/helper-module-context": "1.9.1", | ||
| "@webassemblyjs/helper-wasm-bytecode": "1.9.1", | ||
| "@webassemblyjs/wast-parser": "1.9.1" | ||
| "@webassemblyjs/helper-numbers": "1.10.0", | ||
| "@webassemblyjs/helper-wasm-bytecode": "1.10.0" | ||
| }, | ||
@@ -28,3 +27,3 @@ "repository": { | ||
| "devDependencies": { | ||
| "@webassemblyjs/helper-test-framework": "1.9.1", | ||
| "@webassemblyjs/helper-test-framework": "1.10.0", | ||
| "array.prototype.flatmap": "^1.2.1", | ||
@@ -34,3 +33,3 @@ "dump-exports": "^0.1.0", | ||
| }, | ||
| "gitHead": "697a5f63048049e9ecb3205d789c1e80eaadf478" | ||
| "gitHead": "d00b899ece0242275e2475e75232ae18ddd03aeb" | ||
| } |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
200022
10.92%2
-33.33%36
5.88%6073
12.84%+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed