bytecodealliance / bytecodealliance/ComponentizeJS

fails on regular expressions with Unicode property escapes

Aberta
#177 2 comentários 0 reações 0 responsáveis Ver no GitHub
bug good first issue
Linguagem predominante
Rust
Estrelas
391
Forks
53
Merge médio
3d 5h
PRs com merge (30d)
1

Descrição

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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Reproduza a falha com o comando informado `bunx jco componentize world.js --wit wit -o ts-typescript.wasm -d clocks -d random -d http` e inspecione as expressões regulares de propriedades Unicode em `node_modules/.pnpm/change-case@5.4.4/node_modules/change-case/dist/index.js`. Rastreie a falha por `src/componentize.js` próximo à linha 305 e pelos pontos de entrada `jco` informados. A tarefa estará concluída quando a mesma entrada puder ser componentizada sem o erro de inicialização do Wizer.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
javascript, wasm
Domínio
tooling
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
30/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.