mirror of
https://github.com/danbulant/oxc
synced 2026-05-19 20:28:58 +00:00
## [0.45.0] - 2025-01-11 -7f69561ast: [**BREAKING**] `oxc_ast` do not export `BigUint` (#8428) (overlookmotel) -d8b27afast: [**BREAKING**] No unneccesary trailing underscores on `AstBuilder` method names (#8283) (overlookmotel) -5106088ast: [**BREAKING**] Remove `FromIn<Expression> for Statement` (#8280) (overlookmotel) ### Features -6c7acacallocator: Implement `IntoIterator` for `&mut Vec` (#8389) (overlookmotel) -3212bcdast_tools: Ignore `raw` field of `NumericLiteral` and `StringLiteral` in `ContentEq` (#8417) (Boshen) -ad146bbcodegen: Print real newline when `\n` is inside template literals (#8178) (Boshen) -41ddf60minfier: Add `CompressOptions::target` (#8179) (Boshen) -d56020bminifier: Drop `0` from `new Int8Array(0)` and other TypedArrays (#8431) (sapphi-red) -f935d94minifier: Remove `new` from NativeErrors / `AggregateError` (#8430) (sapphi-red) -dab7a51minifier: Minimize not `!(x === undefined)` -> `x !== undefined` (#8429) (Boshen) -0e7bab8minifier: Remove `if(false){}` in a single pass (#8421) (Boshen) -5b5b844minifier: Fold `ambiguous if else` (#8415) (Boshen) -438a6e7minifier: Minimize conditions in boolean context (#8381) (Boshen) -793cb43minifier: `a != null ? a : b` -> `a ?? b` (#8352) (camc314) -814da55minifier: Compress `x = x || 1` to `x ||= 1` (#8368) (sapphi-red) -a596821minifier: Compress `a.b = a.b + c` to `a.b += c` (#8367) (sapphi-red) -579eb60minifier: Compress `a.b || (a.b = c)` to `a.b ||= c` (#8366) (sapphi-red) -f367a16minifier: Port esbuild conditional expr minification (#8351) (camc314) -8d52cd0minifier: Merge assign expression in conditional expression (#8345) (sapphi-red) -a69d15fminifier: Compress `new Array(2)` -> `[,,]` (#8344) (sapphi-red) -819c475minifier: Compress `new Array(7n)` -> `[7n]` (#8343) (sapphi-red) -e085d66minifier: Remove empty IIFE (#8340) (Boshen) -2c2e483minifier: Fold object spread `({ ...null })` -> `({})` (#8339) (Boshen) -6220e05minifier: Remove empty if statment `if (test) {}` -> `test` (#8336) (Boshen) -a76dfaeminifier: Remove label statement with empty body (#8333) (Boshen) -e88a6bdminifier: Minimize `!0 + null !== 1` -> `!0 + null != 1` (#8332) (Boshen) -ec88c68minifier: Compress `a || (a = b)` to `a ||= b` (#8315) (sapphi-red) -e6fe84dminifier: Compress `a = a + b` to `a += b` (#8314) (sapphi-red) -9ea4e31minifier: Remove `new` from `new Error`/`new Function`/`new RegExp` (#8313) (sapphi-red) -051fbb6minifier: Minimize `x["0"]` -> x[0] (#8316) (Boshen) -a542013minifier: Minimize `do{}while(true)` -> `do;while(true)` (#8311) (Boshen) -e3ff81eminifier: Minimize `(x = 1) === 1` -> `(x = 1) == 1` (#8310) (Boshen) -4b68cc0minifier: Minimize empty `try` statement (#8309) (Boshen) -922c514minifier: Fold `.toString()` (#8308) (Boshen) -66a2443minifier: Minify sequence expressions (#8305) (camc314) -af65c36minifier: Minimize double negated binary expressions (#8304) (camc314) -76c778bminifier: Remove logical nots when arg is a delete expression (#8303) (camc314) -5ed439bminifier: Minify typeof in binary expressions (#8302) (camc314) -6afc590minifier: Compress typeof addition string (#8301) (camc314) -ecc789fminifier: Fold `if(x >> y == 0){}` -> `if(!(x >> y)){}` (#8277) (Boshen) -0e3b79aminifier: Fold `String()` -> `''`, `Number()` -> `false` (#8274) (Boshen) -c9cf593minifier: Compress property key `{[1]: _}` -> {1: _} (#8272) (Boshen) -b92b2abminifier: Fold `BigInt(1n)` -> `1n` (#8270) (Boshen) -a4df387minifier: Compress loose equals undefined (#8268) (camc314) -f000596minifier: Minify call expressionsto `Number` (#8267) (camc314) -092aeafminifier: Flatten spread args in call expressions (#8266) (camc314) -04ec38dminifier: Remove unused arrow function expressions (#8262) (camc314) -e446c15minifier: Improve minimizing unary not expressions (#8261) (camc314) -7f19211minifier: Minimize unary expression statements (#8256) (camc314) -cec63e2minifier: `{}` evals to `f64::NaN` (Boshen) -4d8a08dminifier: Improve constant evaluation (#8252) (Boshen) -e84f267minifier: Compress more property keys (#8253) (Boshen) -d1224f9minifier: Improve minimizing conditional expressions (#8251) (camc314) -65f46f5minifier: Constant fold `String.fromCharCode` (#8248) (Boshen) -bd8d677minifier: Minimize `~undefined`, `~null`, `~true`, `~false` (#8247) (Boshen) -f73dc9eminifier: Constant fold `'x'.toString()` and `true.toString()` (#8246) (Boshen) -fd5af73minifier: Minimize `Number` constructor (#8245) (Boshen) -2f52f33minifier: Minsize `!!!foo ? bar : baz` -> `foo ? baz : bar` (#8244) (Boshen) -ccdc039minifier: Always put literals on the rhs of equal op `1==x` => `x==1` (#8240) (Boshen) -39353b2minifier: Improve minimizing conditionals (#8238) (Cameron) -c90fc16minifier: Restore conditional minification and fix edge case (#8235) (camc314) -6c8ee9fminifier: Remove last redundant `return` statement (#8234) (Boshen) -51f4792minifier: Minimize `foo ? foo : bar` and `foo ? bar : foo` (#8229) (Boshen) -6e2ec17minifier: Statement fusion switch cases; improved minimize exit poitns (#8228) (Boshen) -574a242minifier: Minimize all variants of `typeof x == 'undefined'` (#8227) (Boshen) -2041477minifier: Fold `if(x)return;y` -> `if(!x)y` (#8226) (Boshen) -9c1afa4minifier: Optional catch binding when catch param is unused (#8221) (Boshen) -4a29845minifier: Add `ConvertToDottedProperties` (#8212) (Boshen) -2786deaminifier: Add `RemoveUnusedCode` (#8210) (Boshen) -cd274eeminifier: Minimize logical exprs (#8209) (Cameron) -4ae15dfminifier: Imprve more conditional expr minification with boolean lit (#8208) (camc314) -3202b4fminifier: Imprve conditional expr minification with boolean lit (#8207) (camc314) -3b45011minifier: Handle conditional expr with boolean lit (#8206) (camc314) -4c2059aminifier: Reverse negated conditional exprs (#8205) (camc314) -4804933minifier: Add `MinimizeExitPoints` and ExploitAssigns` boilerplate (#8203) (Boshen) -bf266e1minifier: Try collapse conditional to logical or expr (#8197) (Cameron) -06e1780minifier: Improve `StatementFusion` (#8194) (Boshen) -42e211aminifier: Only constant fold numbers when result is smaller (#8092) (Boshen) -d0de560minifier: Change `NaN` to `f64::NAN` (#8191) (Boshen) -cef8eb8minifier: Change `foo?.['bar']` to `foo?.bar` (#8176) (翠 / green) -8149e34minifier: Optional catch binding when es target >= es2019 (#8180) (Boshen) -fc43ec5minifier: Fold `string.length` / `array.length` (#8172) (sapphi-red) -29dc0dcminifier: Change `foo['bar']` -> foo.bar (#8169) (Boshen) -3c5718dminifier: Fold `typeof foo == undefined` into `foo == undefined` when possible (#8160) (翠 / green) -f3a36e1minifier: Fold `typeof foo != "undefined"` into `typeof foo < "u"` (#8159) (翠 / green) -37c9959minifier: Normalize `Infinity` into `f64::Infinity` (#8148) (Boshen) -8fb71f5minifier: Minify string `PropertyKey` (#8147) (Boshen) -6615e1eminifier: Constant fold `instanceof` (#8142) (翠 / green) -2b2a373minifier: Minimize `a + 'b' + 'c'` -> `a + 'bc'` (#8137) (Boshen) -213364aminifier: Minimize `if (x) if (y) z` -> `if (x && y) z` (#8136) (Boshen) -6b51e6dminifier: Minimize `if(foo) bar else baz` -> `foo ? bar : baz` (#8133) (Boshen) -f615bfaminifier: Minimize `if (x) return; return 1` -> `return x ? void 0 : 1` (#8130) (Boshen) -f0b1ee5minifier: Minimize `if(!x) foo()` -> `x || foo()` (#8122) (Boshen) -f8200a8minifier: Minimize `if(foo) bar` -> `foo && bar` (#8121) (Boshen) -72d9967minifier: Add `Normalize` ast pass (#8120) (Boshen) -fef0b25minifier: Collapse `var` into for loop initializer (#8119) (Boshen) -2331ea8minifier: `typeof foo === 'number'` => `typeof foo == 'number'` (#8112) (Boshen) -ad9a0a9mininifier: Minimize variants of `a instanceof b == true` (#8241) (Boshen) -2da4365parser: Missing initializer in destructuring declaration inside for loop head (#8222) (Boshen) -55744fdsemantic: Allow getting mutable reference to symbols table (#8189) (Max Stoumen) -0592a8btransformer/class-properties: Transform private in expression (#8202) (Dunqing) -ad77ad5transformer/class-properties: Transform static/instance accessor methods (#8132) (Dunqing) -e405f79transformer/class-properties: Transform static private method invoking (#8117) (Dunqing) -3303e99transformer/class-properties: Insert statements after statement of class expression (#8116) (Dunqing) -0cc71cftransformer/class-properties: Transform super expressions and identifiers that refers to class binding in private method (#8106) (Dunqing) -58ed832transformer/class-properties: Transform private field expression which invokes private method (#8102) (Dunqing) -f14567atransformer/class-properties: Transform callee which invokes private method (#8100) (Dunqing) -13349eftransformer/class-properties: Transform private methods (#8099) (Dunqing) ### Bug Fixes -eb25bc0allocator: Fix lifetimes on `IntoIterator` for `Vec` (#8388) (overlookmotel) -97a7992ast: Fix `ContentEq` and `ContentHash` impls for literal types (#8426) (overlookmotel) -a1752a0codegen: Fix incorrect minified `return 1n` output (#8374) (Boshen) -5a648bccodegen: Fix white space issue with do statements (#8348) (Boshen) -b6d16f4codegen: Print parenthesis on negative bigint lit when neccessary (#8258) (camc314) -8ed9766codegen: Source map builder panicked because it attempted to subtract with overflow in `search_original_line_and_column` (#8185) (Dunqing) -ad61e70codegen: Print if else without block with proper indentation (#8135) (Boshen) -74572deecmascript: Incorrect `to_int_32` value for Infinity (#8144) (翠 / green) -e1f8ea4lexer: `Source` is not `Clone` (#8294) (overlookmotel) -5c63414mangler: Keep exported symbols for `top_level: true` (#7927) (翠 / green) -3c93549minifier: Dce if statement should keep side effects and vars (#8433) (Boshen) -52f88c0minifier: Rotate associative operators to make it more idempotent (#8424) (camc314) -a80460cminifier: Correctly set `self.changed` when minimizing if stmts (#8420) (camc314) -d4ca8d4minifier: `!!x` is not idempotent in `RemoveDeadCode` (#8419) (Boshen) -357b61dminifier: Do not minify `Object.defineProperty` in sequence expressions (#8416) (Boshen) -0efc845minifier: `+0n` produces `TypeError` (#8410) (Boshen) -7ce6a7cminifier: `a in b` has error throwing side effect (#8406) (Boshen) -2f3a9dcminifier: Cannot transform property key `#constructor` (#8405) (Boshen) -c0a3ddaminifier: `instanceof` has error throwing side effect (#8378) (Boshen) -5516f7fminifier: Do not fold object comparisons (#8375) (Boshen) -cb098c7minifier: Computed property key `prototype` cannot be changed (#8373) (Boshen) -82ee77eminifier: Do not remove shadowned `undefined` in return statement (#8371) (Boshen) -f87da16minifier: Do not fold literals in `-0 != +0` (#8278) (Boshen) -62a2644minifier: Handle arrow fn expressions correctly in `is_in_boolean_context` (#8260) (camc314) -d2f8eaaminifier: Fix panic in `peephole_minimize_conditions` (#8242) (Boshen) -a698defminifier: Fix incorrect return value for `(x ? true : y)` (#8233) (Boshen) -05be1fcminifier: Remove incorrect fold `Expression::AssignmentExpression` (#8211) (Boshen) -56b7f13minifier: Do not constant fold `0 instanceof F` (#8199) (Boshen) -75d5f17minifier: Minify string `PropertyKey` (#8177) (sapphi-red) -f88acb3parser: Allow line breaks between `const` and `enum` (#8193) (branchseer) -79a8fc6semantic: Report error for super property appearing in function body (#8376) (Dunqing) -79af100semantic: Reference flags not correctly resolved when after an export stmt (#8134) (camc314) -3eaff2atransformer: Ensure last expression statement in arrow function expression is wrapped in return (#8192) (Dunqing) -3feac27transformer/arrow-functions: Outer `super()` in nested class (#8382) (Dunqing) -335065dtransformer/arrow-functions: Do not transform super that inside nested non-async method (#8335) (Dunqing) -e4d66e4transformer/arrow-functions: Store `super_methods` on a `Stack` to fix nested async methods (#8331) (Dunqing) -775a289transformer/arrow-functions: `_this = this` should be inserted after super call expression (#8024) (Dunqing) -ac72adbtransformer/private-methods: Fix panic if instance private accessor in class (#8362) (overlookmotel) -f1f129btransformer/private-methods: Create brand binding `var` in hoist scope (#8361) (overlookmotel) -ab61425transformer/private-methods: No temp var for class when unused private methods (#8360) (overlookmotel) -9a03bd2transformer/typescript: Remove type-only `import =` when `only_remove_type_imports` is true (#8275) (Dunqing) -0df1866transformer/typescript: Create `Reference` for `require` (#8355) (overlookmotel) -78d7c97transformer/typescript: Create `Reference` for `Infinity` (#8354) (overlookmotel) -2e7207ftransformer/typescript: Should strip import specifiers type with `only_remove_type_imports` (#8141) (underfin) ### Performance -07edf74transformer/arrow-function: Stop traversal at function as super() can't appear in a nested function (#8383) (Dunqing) -62e3f7etransformer/arrow-functions: Reduce size of inlined visitor (#8322) (overlookmotel) -aebe0eatransformer/arrow-functions: Use `NonEmptyStack` instead of `Stack` (#8318) (overlookmotel) ### Documentation -c8e4843ast: Fix doc comment (#8286) (overlookmotel) -e0a09abdata_structures: Improve docs for stack types (#8356) (overlookmotel) -aaa009dminifier: Clarify assumptions for compressor (#8404) (翠 / green) -05cba5btransformer/private-methods: Amend comments (#8398) (overlookmotel) ### Refactor -b29655fast: Rearrange impls for literal types in same order as they are defined (#8425) (overlookmotel) -0db2a22ast: `AstBuilder` enum builder methods use `alloc_*` methods (#8281) (overlookmotel) -aea9551ast: Simplify `get_identifier_reference` of `TSType` and `TSTypeName` (#8273) (Dunqing) -9c1844adata_structures: Remove `NonNull` shim (#8423) (overlookmotel) -1835687ecmascript: Remove unnecessary `use` statement (#8284) (overlookmotel) -64bfdfelexer: Tighten safety of lexer by always including lifetime on `SourcePosition` (#8293) (overlookmotel) -0344e98lexer: Make `handle_byte` a method of `Lexer` (#8291) (overlookmotel) -fabf116lexer: Replace `#[allow]` with `#[expect]` (#8289) (overlookmotel) -0462edblexer: Rename function param (#8288) (overlookmotel) -fb2acd8minifier: Change minimize conditionals into a loop (#8413) (Boshen) -baaec60minifier: Remove the buggy `??` transform (#8411) (Boshen) -1c4658dminifier: Change ast passes order, `!in_fixed_loop` happen last (#8380) (Boshen) -09f0f48minifier: Remove the buggy `minimize_exit_points` implementation (#8349) (Boshen) -9a5c66aminifier: Clean up (#8346) (Boshen) -98f2b1cminifier: Clean up `peephole_substitute_alternate_syntax` (#8327) (Boshen) -fc662b7minifier: Handle big int values later (#8324) (Boshen) -d16e598minifier: Clean up `peephole_replace_known_methods` (#8306) (Boshen) -b8d26eaminifier: Move optional catch param to peephole_substitute_alternate_syntax (#8282) (Boshen) -0845162minifier: Clean up `ReplaceKnownMethods` (Boshen) -7c7f5d7minifier: Clean up `peephole_fold_constants` (Boshen) -bf0fbceminifier: Improve constant fold numbers (#8239) (Boshen) -62f8fbaminifier: Move all conditional minification logic to minimze_conditions (#8231) (camc314) -cfb51f2minifier: Fuse ast passes (#8184) (Boshen) -bf9cafeminifier: Clean up `peephole_substitute_alternate_syntax` a little bit (Boshen) -75264edminifier: Clean up `try_optimize_block` (#8139) (Boshen) -c22062bminifier: Cleanup peephole_minimize_conditions (#8114) (Boshen) -e594c39minifier: Clean up `peephole_substitute_alternate_syntax.rs` (#8111) (Boshen) -0903501semantic: Check super usage based on scope (#8377) (Dunqing) -109b8fctransformer: Elide lifetimes where possible (#8285) (overlookmotel) -fb389f7transformer/arrow-function: Create a new ident instead of clone (#8338) (Dunqing) -dddbd29transformer/arrow-functions: Reorder assertions (#8386) (overlookmotel) -ce6c445transformer/arrow-functions: Add TODO comments (#8328) (overlookmotel) -73d0025transformer/arrow-functions: Reduce repeated code (#8323) (overlookmotel) -3dd08e9transformer/arrow-functions: Do not inline non-trivial visitor method (#8321) (overlookmotel) -ea9cefbtransformer/arrow-functions: Reorder visitor methods (#8320) (overlookmotel) -37199a4transformer/arrow-functions: Rename lifetime (#8319) (overlookmotel) -57e9dcftransformer/arrow-functions: Shorten `AstBuilder` call (#8317) (overlookmotel) -a5e3528transformer/async-to-generator: Pass `TraverseCtx` to function not `AstBuilder` (#8279) (overlookmotel) -e7c89batransformer/class-properties: TODO comments (#8392) (overlookmotel) -6790d1dtransformer/class-properties: Simplify determining if class is declaration (#8357) (overlookmotel) -c786a13transformer/class-properties: Share `replace_class_name_with_temp_var` in class_properties (#8105) (Dunqing) -f54f48etransformer/class-properties: Remove all `*_if_super` methods in `static_block_and_prop_init` (#8104) (Dunqing) -d82fb52transformer/class-properties: Move `supers` to `super_converter` (#8103) (Dunqing) -3dad85etransformer/private-methods: Remove unnecessary clone (#8400) (overlookmotel) -aa5e65ftransformer/private-methods: Simplify finding parent statement of class expression (#8364) (overlookmotel) -c786fd1transformer/private-methods: TODO comments (#8363) (overlookmotel) ### Styling -4d2888dlexer: Reorder imports (#8290) (overlookmotel) -e81f34fspan: Reformat code (#8296) (overlookmotel) -45e2402transformer/private-methods: Move comments (#8399) (overlookmotel) -0a1ffc0transformer/private-methods: Rename var (#8397) (overlookmotel) ### Testing -16dcdaflexer: Assert size of `Token` in 32-bit WASM (#8292) (overlookmotel) -3149fe0minifier: Add anonymous function test case for logical expression to logical assignment compression (#8347) (sapphi-red) -91b42deminifier: Enable some passing tests (#8250) (camc314) -1fa5341minifier: Port tests from ConvertToDottedPropertiesTest (#8175) (sapphi-red) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
41 lines
1.3 KiB
JSON
41 lines
1.3 KiB
JSON
{
|
|
"name": "@oxc-parser/wasm",
|
|
"version": "0.45.0",
|
|
"description": "Wasm target for the oxc parser.",
|
|
"keywords": [
|
|
"JavaScript",
|
|
"TypeScript",
|
|
"parser"
|
|
],
|
|
"author": "Boshen and oxc contributors",
|
|
"license": "MIT",
|
|
"homepage": "https://oxc.rs",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/oxc-project/oxc",
|
|
"directory": "wasm/parser"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/Boshen"
|
|
},
|
|
"main": "./node/oxc_parser_wasm.js",
|
|
"browser": "./web/oxc_parser_wasm.js",
|
|
"types": "./node/oxc_parser_wasm.d.ts",
|
|
"files": [
|
|
"node",
|
|
"web"
|
|
],
|
|
"dependencies": {
|
|
"@oxc-project/types": "workspace:^"
|
|
},
|
|
"scripts": {
|
|
"build": "pnpm run build-node && pnpm run build-web && pnpm run copy-files && pnpm run clean-files",
|
|
"build-node": "pnpm run build-base --target nodejs --out-dir ../../npm/parser-wasm/node .",
|
|
"build-web": "pnpm run build-base --target web --out-dir ../../npm/parser-wasm/web .",
|
|
"build-base": "wasm-pack build --release --no-pack",
|
|
"copy-files": "cp ./package.json ../../npm/parser-wasm/package.json && cp ./README.md ../../npm/parser-wasm/README.md",
|
|
"clean-files": "rm ../../npm/parser-wasm/*/.gitignore",
|
|
"test": "node ./test-node.mjs",
|
|
"check": "tsc --lib es2020,dom ./node/oxc_parser_wasm.d.ts"
|
|
}
|
|
}
|