@bytecodealliance/jco 1.23.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2763,7 +2763,7 @@ function _lowerImportBackwardsCompat(args) {
2763
2763
  ? values => values
2764
2764
  : values => new typedArray(values);
2765
2765
 
2766
- const readValuesAndReset = (ctx, originalPtr, dataPtr, len) => {
2766
+ const readValuesAndReset = (ctx, originalPtr, originalLen, dataPtr, len) => {
2767
2767
  ctx.storagePtr = dataPtr;
2768
2768
  const val = [];
2769
2769
  for (var i = 0; i < len; i++) {
@@ -2776,6 +2776,7 @@ function _lowerImportBackwardsCompat(args) {
2776
2776
  ctx.storagePtr = Math.max(ctx.storagePtr, elemPtr + elemSize32);
2777
2777
  }
2778
2778
  if (originalPtr !== null) { ctx.storagePtr = originalPtr; }
2779
+ if (originalLen !== null) { ctx.storageLen = originalLen; }
2779
2780
  return [listValue(val), ctx];
2780
2781
  };
2781
2782
 
@@ -2794,8 +2795,11 @@ function _lowerImportBackwardsCompat(args) {
2794
2795
  throw new Error(`memory missing while lifting known length (${knownLen}) list`);
2795
2796
  }
2796
2797
 
2798
+ const originalLen = ctx.storageLen;
2799
+ const originalPtr = ctx.storagePtr;
2800
+
2797
2801
  ctx.storageLen = knownLen * elemSize32;
2798
- liftResults = readValuesAndReset(ctx, null, ctx.storagePtr, knownLen);
2802
+ liftResults = readValuesAndReset(ctx, null, originalLen, ctx.storagePtr, knownLen);
2799
2803
  }
2800
2804
 
2801
2805
  } else { // unknown length list
@@ -2808,16 +2812,15 @@ function _lowerImportBackwardsCompat(args) {
2808
2812
 
2809
2813
  ctx.useDirectParams = false;
2810
2814
  const originalPtr = ctx.storagePtr;
2815
+ const originalLen = ctx.storageLen;
2811
2816
  ctx.storageLen = len * elemSize32;
2812
2817
 
2813
- liftResults = readValuesAndReset(ctx, originalPtr, dataPtr, len);
2818
+ liftResults = readValuesAndReset(ctx, originalPtr, originalLen, dataPtr, len);
2814
2819
 
2815
2820
  ctx.useDirectParams = true;
2816
- ctx.storagePtr = undefined;
2817
- ctx.storageLen = undefined;
2818
-
2819
2821
  } else {
2820
2822
  // unknown length list ptr w/ in-memory params
2823
+ const originalLen = ctx.storageLen;
2821
2824
  ctx.storageLen = 8;
2822
2825
 
2823
2826
  const dataPtrLiftRes = _liftFlatU32(ctx);
@@ -2832,7 +2835,7 @@ function _lowerImportBackwardsCompat(args) {
2832
2835
  ctx.storagePtr = dataPtr;
2833
2836
 
2834
2837
  ctx.storageLen = len * elemSize32;
2835
- liftResults = readValuesAndReset(ctx, originalPtr, dataPtr, len);
2838
+ liftResults = readValuesAndReset(ctx, originalPtr, originalLen, dataPtr, len);
2836
2839
  }
2837
2840
  }
2838
2841
 
package/obj/wasm-tools.js CHANGED
@@ -2763,7 +2763,7 @@ function _lowerImportBackwardsCompat(args) {
2763
2763
  ? values => values
2764
2764
  : values => new typedArray(values);
2765
2765
 
2766
- const readValuesAndReset = (ctx, originalPtr, dataPtr, len) => {
2766
+ const readValuesAndReset = (ctx, originalPtr, originalLen, dataPtr, len) => {
2767
2767
  ctx.storagePtr = dataPtr;
2768
2768
  const val = [];
2769
2769
  for (var i = 0; i < len; i++) {
@@ -2776,6 +2776,7 @@ function _lowerImportBackwardsCompat(args) {
2776
2776
  ctx.storagePtr = Math.max(ctx.storagePtr, elemPtr + elemSize32);
2777
2777
  }
2778
2778
  if (originalPtr !== null) { ctx.storagePtr = originalPtr; }
2779
+ if (originalLen !== null) { ctx.storageLen = originalLen; }
2779
2780
  return [listValue(val), ctx];
2780
2781
  };
2781
2782
 
@@ -2794,8 +2795,11 @@ function _lowerImportBackwardsCompat(args) {
2794
2795
  throw new Error(`memory missing while lifting known length (${knownLen}) list`);
2795
2796
  }
2796
2797
 
2798
+ const originalLen = ctx.storageLen;
2799
+ const originalPtr = ctx.storagePtr;
2800
+
2797
2801
  ctx.storageLen = knownLen * elemSize32;
2798
- liftResults = readValuesAndReset(ctx, null, ctx.storagePtr, knownLen);
2802
+ liftResults = readValuesAndReset(ctx, null, originalLen, ctx.storagePtr, knownLen);
2799
2803
  }
2800
2804
 
2801
2805
  } else { // unknown length list
@@ -2808,16 +2812,15 @@ function _lowerImportBackwardsCompat(args) {
2808
2812
 
2809
2813
  ctx.useDirectParams = false;
2810
2814
  const originalPtr = ctx.storagePtr;
2815
+ const originalLen = ctx.storageLen;
2811
2816
  ctx.storageLen = len * elemSize32;
2812
2817
 
2813
- liftResults = readValuesAndReset(ctx, originalPtr, dataPtr, len);
2818
+ liftResults = readValuesAndReset(ctx, originalPtr, originalLen, dataPtr, len);
2814
2819
 
2815
2820
  ctx.useDirectParams = true;
2816
- ctx.storagePtr = undefined;
2817
- ctx.storageLen = undefined;
2818
-
2819
2821
  } else {
2820
2822
  // unknown length list ptr w/ in-memory params
2823
+ const originalLen = ctx.storageLen;
2821
2824
  ctx.storageLen = 8;
2822
2825
 
2823
2826
  const dataPtrLiftRes = _liftFlatU32(ctx);
@@ -2832,7 +2835,7 @@ function _lowerImportBackwardsCompat(args) {
2832
2835
  ctx.storagePtr = dataPtr;
2833
2836
 
2834
2837
  ctx.storageLen = len * elemSize32;
2835
- liftResults = readValuesAndReset(ctx, originalPtr, dataPtr, len);
2838
+ liftResults = readValuesAndReset(ctx, originalPtr, originalLen, dataPtr, len);
2836
2839
  }
2837
2840
  }
2838
2841
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytecodealliance/jco",
3
- "version": "1.23.0",
3
+ "version": "1.24.0",
4
4
  "description": "JavaScript tooling for working with WebAssembly Components",
5
5
  "keywords": [
6
6
  "Component",
@@ -29,6 +29,8 @@ import { isWindows } from "../common.js";
29
29
  // These re-exports exist to avoid breaking backwards compatibility
30
30
  export { types, guestTypes, typesComponent } from "./types.js";
31
31
 
32
+ const SUPPORTED_P3_VERSIONS = ["0.3.0-rc-2026-03-15", "0.3.0"];
33
+
32
34
  export async function transpile(witPath, opts, program) {
33
35
  const varIdx = program?.parent.rawArgs.indexOf("--");
34
36
  if (varIdx !== undefined && varIdx !== -1) {
@@ -134,25 +136,36 @@ export async function transpileComponent(component, opts = {}) {
134
136
  }
135
137
 
136
138
  if (opts.wasiShim !== false) {
137
- const p3VersionTag = "0.3.0-rc-2026-03-15";
138
- opts.map = Object.assign(
139
- {
140
- "wasi:cli/*": "@bytecodealliance/preview2-shim/cli#*",
141
- "wasi:clocks/*": "@bytecodealliance/preview2-shim/clocks#*",
142
- "wasi:filesystem/*": "@bytecodealliance/preview2-shim/filesystem#*",
143
- "wasi:http/*": "@bytecodealliance/preview2-shim/http#*",
144
- "wasi:io/*": "@bytecodealliance/preview2-shim/io#*",
145
- "wasi:random/*": "@bytecodealliance/preview2-shim/random#*",
146
- "wasi:sockets/*": "@bytecodealliance/preview2-shim/sockets#*",
147
- [`wasi:cli/*@${p3VersionTag}`]: "@bytecodealliance/preview3-shim/cli#*",
148
- [`wasi:clocks/*@${p3VersionTag}`]: "@bytecodealliance/preview3-shim/clocks#*",
149
- [`wasi:filesystem/*@${p3VersionTag}`]: "@bytecodealliance/preview3-shim/filesystem#*",
150
- [`wasi:http/*@${p3VersionTag}`]: "@bytecodealliance/preview3-shim/http#*",
151
- [`wasi:random/*@${p3VersionTag}`]: "@bytecodealliance/preview3-shim/random#*",
152
- [`wasi:sockets/*@${p3VersionTag}`]: "@bytecodealliance/preview3-shim/sockets#*",
153
- },
154
- opts.map || {},
155
- );
139
+ const shims = {
140
+ "wasi:cli/*": "@bytecodealliance/preview2-shim/cli#*",
141
+ "wasi:clocks/*": "@bytecodealliance/preview2-shim/clocks#*",
142
+ "wasi:filesystem/*": "@bytecodealliance/preview2-shim/filesystem#*",
143
+ "wasi:http/*": "@bytecodealliance/preview2-shim/http#*",
144
+ "wasi:io/*": "@bytecodealliance/preview2-shim/io#*",
145
+ "wasi:random/*": "@bytecodealliance/preview2-shim/random#*",
146
+ "wasi:sockets/*": "@bytecodealliance/preview2-shim/sockets#*",
147
+ };
148
+
149
+ // To avoid breaking compatibility with earlier version of p3 (including draft versions),
150
+ // we over-populate the map with references to the *current* preview3-shim that has been
151
+ // imported.
152
+ //
153
+ // This implicitly upgrades versions of P3 in use (a component that asks for 0.3.0 will get 0.3.1 if that
154
+ // is the current version in preview3-shim0, but that should be acceptable as p3 should not have breaking
155
+ // changes going forward.
156
+ //
157
+ for (const version of SUPPORTED_P3_VERSIONS) {
158
+ Object.assign(shims, {
159
+ [`wasi:cli/*@${version}`]: "@bytecodealliance/preview3-shim/cli#*",
160
+ [`wasi:clocks/*@${version}`]: "@bytecodealliance/preview3-shim/clocks#*",
161
+ [`wasi:filesystem/*@${version}`]: "@bytecodealliance/preview3-shim/filesystem#*",
162
+ [`wasi:http/*@${version}`]: "@bytecodealliance/preview3-shim/http#*",
163
+ [`wasi:random/*@${version}`]: "@bytecodealliance/preview3-shim/random#*",
164
+ [`wasi:sockets/*@${version}`]: "@bytecodealliance/preview3-shim/sockets#*",
165
+ });
166
+ }
167
+
168
+ opts.map = Object.assign(shims, opts.map || {});
156
169
  }
157
170
 
158
171
  let instantiation = null;
package/src/jco.js CHANGED
@@ -25,7 +25,7 @@ program
25
25
  )
26
26
  .usage("<command> [options]")
27
27
  .enablePositionalOptions()
28
- .version("1.23.0");
28
+ .version("1.24.0");
29
29
 
30
30
  function myParseInt(value) {
31
31
  return parseInt(value, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"transpile.d.ts","sourceRoot":"","sources":["../../src/cmd/transpile.js"],"names":[],"mappings":"AA+BA,gFAuCC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8CA1BW,UAAU,SACV;IACN,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wBAAwB,CAAC,EAAE,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACS,OAAO,CAAC;IAAE,KAAK,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;CAAE,CAAC,CAyUnI"}
1
+ {"version":3,"file":"transpile.d.ts","sourceRoot":"","sources":["../../src/cmd/transpile.js"],"names":[],"mappings":"AAiCA,gFAuCC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,8CA1BW,UAAU,SACV;IACN,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wBAAwB,CAAC,EAAE,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,MAAM,CAAC,EAAE,IAAI,CAAC;IACd,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACS,OAAO,CAAC;IAAE,KAAK,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,EAAE,CAAA;CAAE,CAAC,CAoVnI"}