bytecodealliance / bytecodealliance/ComponentizeJS
fails on regular expressions with Unicode property escapes
- Lenguaje dominante
- Rust
- Estrellas
- 391
- Forks
- 53
- Merge medio
- 3 d 5 h
- PR fusionados (30 d)
- 1
Descripción
I am trying to wrap typespec into a component. It pulls in change-case library which uses regular expressions with Unicode. componetize is failing on these regular expressions:
```js
var SPLIT_LOWER_UPPER_RE = /([\p{Ll}\d])(\p{Lu})/gu;
var SPLIT_UPPER_UPPER_RE = /(\p{Lu})([\p{Lu}][\p{Ll}])/gu;
var SPLIT_SEPARATE_NUMBER_RE = /(\d)\p{Ll}|(\p{L})\d/u;
var DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
```
The code is from here:
node_modules/.pnpm/change-case@5.4.4/node_modules/change-case/dist/index.js
https://www.npmjs.com/package/change-case
https://github.com/blakeembrey/change-case/blob/main/packages/change-case/src/index.ts
```
$ bunx jco componentize world.js --wit wit -o ts-typescript.wasm -d clocks -d random -d http
Exception while evaluating top-level script
world.js:31083:32 SyntaxError: invalid class property name in regular expression:
world.js:31083:32 ([\p{Ll}\d])(\p{Lu})
world.js:31083:32 ....^
Error: the `componentize.wizer` function trapped
Caused by:
0: error while executing at wasm backtrace:
0: 0x79597a - !
1: 0x7962ed - !
2: 0x20646 - !
3: 0x1f5f9 - !
4: 0xa6a5 - !
5: 0x22acba - !
1: Exited with i32 exit status 1
Error: Failed to initialize the compiled Wasm binary with Wizer:
Wizering failed to complete
at componentize (file:///Users/cataggar/ms/ComponentizeJS/src/componentize.js:305:13)
at async componentize (file:///Users/cataggar/ms/jco/src/cmd/componentize.js:11:25)
at async file:///Users/cataggar/ms/jco/src/jco.js:213:9
error: script "componentize" exited with code 1
(jco componentize)
In 'typescript' script 'componentize' failed with exit code 1
```
# Copilot says:
SpiderMonkey, the JavaScript and WebAssembly engine used in Mozilla Firefox, supports Unicode property escapes as part of the ECMAScript 2018 (ES9) specification. This feature allows you to use Unicode property escapes in regular expressions to match characters based on their Unicode properties.
### Enabling Unicode Property Escapes in SpiderMonkey
To ensure that SpiderMonkey is compiled with support for Unicode property escapes, you need to use a version of SpiderMonkey that supports ECMAScript 2018 or later. Most modern versions of SpiderMonkey, including those used in recent versions of Firefox, already include this support.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Reproduce el fallo con el comando indicado `bunx jco componentize world.js --wit wit -o ts-typescript.wasm -d clocks -d random -d http` e inspecciona las expresiones regulares de propiedades Unicode en `node_modules/.pnpm/change-case@5.4.4/node_modules/change-case/dist/index.js`. Sigue el fallo a través de `src/componentize.js` alrededor de la línea 305 y de los puntos de entrada `jco` indicados. La tarea está terminada cuando la misma entrada se puede componentizar sin el error de inicialización de Wizer.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, wasm
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 30/100