Skip to content

fix(napi/parser): move ExportEntry::module_request field to first#16412

Merged
graphite-app[bot] merged 1 commit intomainfrom
12-02-fix_napi_parser_move_exportentry_module_request_field_to_first
Dec 2, 2025
Merged

fix(napi/parser): move ExportEntry::module_request field to first#16412
graphite-app[bot] merged 1 commit intomainfrom
12-02-fix_napi_parser_move_exportentry_module_request_field_to_first

Conversation

@overlookmotel
Copy link
Member

@overlookmotel overlookmotel commented Dec 2, 2025

Revert the change made in #16403. It's no longer necessary after #16411, because NAPI-RS no longer re-orders the fields.

@github-actions github-actions bot added A-parser Area - Parser C-bug Category - Bug labels Dec 2, 2025
Copy link
Member Author

overlookmotel commented Dec 2, 2025


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • 0-merge - adds this PR to the back of the merge queue
  • hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@codspeed-hq
Copy link

codspeed-hq bot commented Dec 2, 2025

CodSpeed Performance Report

Merging #16412 will not alter performance

Comparing 12-02-fix_napi_parser_move_exportentry_module_request_field_to_first (f8a841c) with main (194e357)1

Summary

✅ 42 untouched
⏩ 3 skipped2

Footnotes

  1. No successful run was found on 12-02-feat_napi_parser_represent_empty_optional_fields_on_js_side_as_null_ (9c8d65e) during the generation of this report, so main (194e357) was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

  2. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@overlookmotel overlookmotel marked this pull request as ready for review December 2, 2025 23:10
Copilot AI review requested due to automatic review settings December 2, 2025 23:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reverts a previous workaround (#16403) by moving the module_request field in ExportEntry/StaticExportEntry from the last position back to the first position (after start and end). This change is now safe because NAPI-RS no longer reorders struct fields after #16411.

  • Removes explicit field ordering constraints that are no longer necessary
  • Restores natural field order to match Rust struct definitions
  • Updates all generated code and snapshots to reflect the new field order

Reviewed changes

Copilot reviewed 3 out of 13 changed files in this pull request and generated no comments.

Show a summary per file
File Description
napi/parser/src/types.rs Moved module_request field from last to third position in StaticExportEntry struct
napi/parser/src-js/index.d.ts Updated TypeScript interface to match Rust struct field order
crates/oxc_syntax/src/module_record.rs Removed explicit field_order attribute from ExportEntry struct as it's no longer needed
crates/oxc_syntax/src/generated/derive_estree.rs Updated generated serialization to output moduleRequest field first
napi/parser/generated/deserialize/*.js Updated 8 deserialization files to construct objects with moduleRequest first (memory offsets unchanged)
napi/parser/test/snapshots/esm.test.ts.snap Updated all snapshot tests to reflect new field ordering in serialized output

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@overlookmotel overlookmotel force-pushed the 12-02-feat_napi_parser_represent_empty_optional_fields_on_js_side_as_null_ branch from 248b924 to 022bf48 Compare December 2, 2025 23:14
@overlookmotel overlookmotel force-pushed the 12-02-fix_napi_parser_move_exportentry_module_request_field_to_first branch 2 times, most recently from 141a233 to f8a841c Compare December 2, 2025 23:23
@overlookmotel overlookmotel force-pushed the 12-02-feat_napi_parser_represent_empty_optional_fields_on_js_side_as_null_ branch from 022bf48 to 9c8d65e Compare December 2, 2025 23:23
@overlookmotel overlookmotel self-assigned this Dec 2, 2025
@overlookmotel overlookmotel added the 0-merge Merge with Graphite Merge Queue label Dec 2, 2025
Copy link
Member Author

overlookmotel commented Dec 2, 2025

Merge activity

…16412)

Revert the change made in #16403. It's no longer necessary after #16411, because NAPI-RS no longer re-orders the fields.
@graphite-app graphite-app bot force-pushed the 12-02-feat_napi_parser_represent_empty_optional_fields_on_js_side_as_null_ branch from 9c8d65e to 083fea9 Compare December 2, 2025 23:30
@graphite-app graphite-app bot force-pushed the 12-02-fix_napi_parser_move_exportentry_module_request_field_to_first branch from f8a841c to 699406a Compare December 2, 2025 23:31
Base automatically changed from 12-02-feat_napi_parser_represent_empty_optional_fields_on_js_side_as_null_ to main December 2, 2025 23:36
@graphite-app graphite-app bot removed the 0-merge Merge with Graphite Merge Queue label Dec 2, 2025
@graphite-app graphite-app bot merged commit 699406a into main Dec 2, 2025
21 checks passed
@graphite-app graphite-app bot deleted the 12-02-fix_napi_parser_move_exportentry_module_request_field_to_first branch December 2, 2025 23:37
Afsoon pushed a commit to Afsoon/oxc that referenced this pull request Dec 3, 2025
…xc-project#16412)

Revert the change made in oxc-project#16403. It's no longer necessary after oxc-project#16411, because NAPI-RS no longer re-orders the fields.
overlookmotel pushed a commit that referenced this pull request Dec 8, 2025
### 💥 BREAKING CHANGES

- 083fea9 napi/parser: [**BREAKING**] Represent empty optional fields on
JS side as `null` (#16411) (overlookmotel)

### 🚀 Features

- 7a2afee parser: Add TS1174 error for classes extending multiple base
classes (#15993) (sapphi-red)
- da87812 semantic: Add TS2309 error for export assignment with other
exports (#15992) (sapphi-red)
- d6d2bcd minifier: Remove unused function calls that are marked by
`manual_pure_functions` (#16534) (sapphi-red)
- c90f053 minifier: Support `.` separated values for
`compress.treeshake.manualPureFunctions` (#16529) (sapphi-red)
- a607cc4 codegen: Preserve comments between CatchClause's param and
body (#16167) (copilot-swe-agent)
- 8c10694 semantic: Expose get_comment_at method (#16439) (camc314)
- 3981e7a ast: Add get_comment_at to lookup a comment by span (#16438)
(camc314)

### 🐛 Bug Fixes

- 699406a napi/parser: Move `ExportEntry::module_request` field to first
(#16412) (overlookmotel)
- 12bd794 napi/parser: Move `ExportEntry::module_request` field to last
(#16403) (overlookmotel)

### ⚡ Performance

- 790beeb napi/parser: Do not remove extraneous options on JS side
(#16447) (overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Copilot AI pushed a commit that referenced this pull request Dec 10, 2025
### 💥 BREAKING CHANGES

- 083fea9 napi/parser: [**BREAKING**] Represent empty optional fields on
JS side as `null` (#16411) (overlookmotel)

### 🚀 Features

- 7a2afee parser: Add TS1174 error for classes extending multiple base
classes (#15993) (sapphi-red)
- da87812 semantic: Add TS2309 error for export assignment with other
exports (#15992) (sapphi-red)
- d6d2bcd minifier: Remove unused function calls that are marked by
`manual_pure_functions` (#16534) (sapphi-red)
- c90f053 minifier: Support `.` separated values for
`compress.treeshake.manualPureFunctions` (#16529) (sapphi-red)
- a607cc4 codegen: Preserve comments between CatchClause's param and
body (#16167) (copilot-swe-agent)
- 8c10694 semantic: Expose get_comment_at method (#16439) (camc314)
- 3981e7a ast: Add get_comment_at to lookup a comment by span (#16438)
(camc314)

### 🐛 Bug Fixes

- 699406a napi/parser: Move `ExportEntry::module_request` field to first
(#16412) (overlookmotel)
- 12bd794 napi/parser: Move `ExportEntry::module_request` field to last
(#16403) (overlookmotel)

### ⚡ Performance

- 790beeb napi/parser: Do not remove extraneous options on JS side
(#16447) (overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
taearls pushed a commit to taearls/oxc that referenced this pull request Dec 11, 2025
…xc-project#16412)

Revert the change made in oxc-project#16403. It's no longer necessary after oxc-project#16411, because NAPI-RS no longer re-orders the fields.
taearls pushed a commit to taearls/oxc that referenced this pull request Dec 11, 2025
### 💥 BREAKING CHANGES

- 083fea9 napi/parser: [**BREAKING**] Represent empty optional fields on
JS side as `null` (oxc-project#16411) (overlookmotel)

### 🚀 Features

- 7a2afee parser: Add TS1174 error for classes extending multiple base
classes (oxc-project#15993) (sapphi-red)
- da87812 semantic: Add TS2309 error for export assignment with other
exports (oxc-project#15992) (sapphi-red)
- d6d2bcd minifier: Remove unused function calls that are marked by
`manual_pure_functions` (oxc-project#16534) (sapphi-red)
- c90f053 minifier: Support `.` separated values for
`compress.treeshake.manualPureFunctions` (oxc-project#16529) (sapphi-red)
- a607cc4 codegen: Preserve comments between CatchClause's param and
body (oxc-project#16167) (copilot-swe-agent)
- 8c10694 semantic: Expose get_comment_at method (oxc-project#16439) (camc314)
- 3981e7a ast: Add get_comment_at to lookup a comment by span (oxc-project#16438)
(camc314)

### 🐛 Bug Fixes

- 699406a napi/parser: Move `ExportEntry::module_request` field to first
(oxc-project#16412) (overlookmotel)
- 12bd794 napi/parser: Move `ExportEntry::module_request` field to last
(oxc-project#16403) (overlookmotel)

### ⚡ Performance

- 790beeb napi/parser: Do not remove extraneous options on JS side
(oxc-project#16447) (overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-parser Area - Parser C-bug Category - Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants