redscript-mc 2.6.2 → 3.0.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.
- package/.github/workflows/ci.yml +11 -0
- package/CHANGELOG.md +18 -9
- package/README-benchmarks.md +48 -0
- package/README-vscode-test.md +251 -0
- package/RELEASE_NOTES.md +74 -0
- package/ROADMAP.md +131 -167
- package/benchmarks/_shared.ts +468 -0
- package/benchmarks/baseline.json +2816 -0
- package/benchmarks/baseline.md +13 -0
- package/benchmarks/compiler-perf.report.json +207 -0
- package/benchmarks/compiler-perf.ts +76 -0
- package/benchmarks/results.md +13 -0
- package/benchmarks/stdlib-complexity.report.json +2606 -0
- package/benchmarks/stdlib-complexity.ts +54 -0
- package/benchmarks/stdlib-size.md +57 -0
- package/benchmarks/stdlib-size.ts +91 -0
- package/coverage-report.md +177 -0
- package/dist/src/__tests__/budget.test.js +4 -0
- package/dist/src/__tests__/cache/cache-behavior.test.d.ts +10 -0
- package/dist/src/__tests__/cache/cache-behavior.test.js +425 -0
- package/dist/src/__tests__/cache-extra.test.d.ts +5 -0
- package/dist/src/__tests__/cache-extra.test.js +211 -0
- package/dist/src/__tests__/cli-init.test.d.ts +1 -0
- package/dist/src/__tests__/cli-init.test.js +97 -0
- package/dist/src/__tests__/cli-publish.test.d.ts +9 -0
- package/dist/src/__tests__/cli-publish.test.js +189 -0
- package/dist/src/__tests__/cli.test.js +76 -0
- package/dist/src/__tests__/compile-preprocess.test.d.ts +11 -0
- package/dist/src/__tests__/compile-preprocess.test.js +328 -0
- package/dist/src/__tests__/compiler/break-stmt.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/break-stmt.test.js +58 -0
- package/dist/src/__tests__/compiler/const-decl.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/const-decl.test.js +123 -0
- package/dist/src/__tests__/compiler/continue-stmt.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/continue-stmt.test.js +67 -0
- package/dist/src/__tests__/compiler/coroutine-extended.test.d.ts +17 -0
- package/dist/src/__tests__/compiler/coroutine-extended.test.js +565 -0
- package/dist/src/__tests__/compiler/deprecated.test.d.ts +4 -0
- package/dist/src/__tests__/compiler/deprecated.test.js +285 -0
- package/dist/src/__tests__/compiler/do-while.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/do-while.test.js +120 -0
- package/dist/src/__tests__/compiler/enum-payload.test.d.ts +9 -0
- package/dist/src/__tests__/compiler/enum-payload.test.js +272 -0
- package/dist/src/__tests__/compiler/interface.test.d.ts +10 -0
- package/dist/src/__tests__/compiler/interface.test.js +258 -0
- package/dist/src/__tests__/compiler/labeled-loops.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/labeled-loops.test.js +263 -0
- package/dist/src/__tests__/compiler/match-string.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/match-string.test.js +43 -0
- package/dist/src/__tests__/compiler/memoize.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/memoize.test.js +113 -0
- package/dist/src/__tests__/compiler/method-chain.test.d.ts +5 -0
- package/dist/src/__tests__/compiler/method-chain.test.js +115 -0
- package/dist/src/__tests__/compiler/module-import.test.d.ts +12 -0
- package/dist/src/__tests__/compiler/module-import.test.js +261 -0
- package/dist/src/__tests__/compiler/option-extensions.test.d.ts +6 -0
- package/dist/src/__tests__/compiler/option-extensions.test.js +191 -0
- package/dist/src/__tests__/compiler/profile-decorator.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/profile-decorator.test.js +69 -0
- package/dist/src/__tests__/compiler/string-advanced.test.d.ts +7 -0
- package/dist/src/__tests__/compiler/string-advanced.test.js +281 -0
- package/dist/src/__tests__/compiler/struct-extends.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/struct-extends.test.js +95 -0
- package/dist/src/__tests__/compiler/throttle-retry.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/throttle-retry.test.js +166 -0
- package/dist/src/__tests__/compiler/tuple-type.test.d.ts +10 -0
- package/dist/src/__tests__/compiler/tuple-type.test.js +229 -0
- package/dist/src/__tests__/compiler/watch-decorator.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/watch-decorator.test.js +65 -0
- package/dist/src/__tests__/config/project-config.test.d.ts +1 -0
- package/dist/src/__tests__/config/project-config.test.js +199 -0
- package/dist/src/__tests__/config-decorator.test.d.ts +8 -0
- package/dist/src/__tests__/config-decorator.test.js +142 -0
- package/dist/src/__tests__/diagnostics-extra.test.d.ts +6 -0
- package/dist/src/__tests__/diagnostics-extra.test.js +132 -0
- package/dist/src/__tests__/emit/compile-branches.test.d.ts +1 -0
- package/dist/src/__tests__/emit/compile-branches.test.js +123 -0
- package/dist/src/__tests__/emit/compile-coverage.test.d.ts +25 -0
- package/dist/src/__tests__/emit/compile-coverage.test.js +617 -0
- package/dist/src/__tests__/emit/compile-extra-branches.test.d.ts +12 -0
- package/dist/src/__tests__/emit/compile-extra-branches.test.js +225 -0
- package/dist/src/__tests__/emit/compile-mocked-branches.test.d.ts +0 -0
- package/dist/src/__tests__/emit/compile-mocked-branches.test.js +238 -0
- package/dist/src/__tests__/emit/execute-chain.test.d.ts +10 -0
- package/dist/src/__tests__/emit/execute-chain.test.js +94 -0
- package/dist/src/__tests__/emit/index.test.js +2 -1
- package/dist/src/__tests__/emit/modules-branches.test.d.ts +1 -0
- package/dist/src/__tests__/emit/modules-branches.test.js +88 -0
- package/dist/src/__tests__/emit/modules-coverage.test.d.ts +15 -0
- package/dist/src/__tests__/emit/modules-coverage.test.js +221 -0
- package/dist/src/__tests__/emit/modules-errors.test.d.ts +12 -0
- package/dist/src/__tests__/emit/modules-errors.test.js +169 -0
- package/dist/src/__tests__/emit/modules-rewrite.test.d.ts +17 -0
- package/dist/src/__tests__/emit/modules-rewrite.test.js +204 -0
- package/dist/src/__tests__/emit/source-map.test.d.ts +1 -0
- package/dist/src/__tests__/emit/source-map.test.js +167 -0
- package/dist/src/__tests__/enum.test.js +9 -4
- package/dist/src/__tests__/error-recovery.test.d.ts +7 -0
- package/dist/src/__tests__/error-recovery.test.js +217 -0
- package/dist/src/__tests__/events-types-extra.test.d.ts +10 -0
- package/dist/src/__tests__/events-types-extra.test.js +91 -0
- package/dist/src/__tests__/events-types.test.d.ts +4 -0
- package/dist/src/__tests__/events-types.test.js +56 -0
- package/dist/src/__tests__/formatter.test.js +13 -5
- package/dist/src/__tests__/hir/lower-extra.test.d.ts +9 -0
- package/dist/src/__tests__/hir/lower-extra.test.js +140 -0
- package/dist/src/__tests__/hir/monomorphize-extra.test.d.ts +15 -0
- package/dist/src/__tests__/hir/monomorphize-extra.test.js +200 -0
- package/dist/src/__tests__/hir/monomorphize-extra2.test.d.ts +16 -0
- package/dist/src/__tests__/hir/monomorphize-extra2.test.js +316 -0
- package/dist/src/__tests__/incremental.test.js +10 -2
- package/dist/src/__tests__/index-extra.test.d.ts +10 -0
- package/dist/src/__tests__/index-extra.test.js +71 -0
- package/dist/src/__tests__/lexer.test.js +2 -2
- package/dist/src/__tests__/lint/rules.test.d.ts +5 -0
- package/dist/src/__tests__/lint/rules.test.js +208 -0
- package/dist/src/__tests__/lir/lower.test.js +29 -0
- package/dist/src/__tests__/lir/verify.test.js +30 -0
- package/dist/src/__tests__/lsp/completion.test.d.ts +7 -0
- package/dist/src/__tests__/lsp/completion.test.js +583 -0
- package/dist/src/__tests__/lsp/definition.test.d.ts +7 -0
- package/dist/src/__tests__/lsp/definition.test.js +454 -0
- package/dist/src/__tests__/lsp/diagnostics.test.d.ts +10 -0
- package/dist/src/__tests__/lsp/diagnostics.test.js +98 -0
- package/dist/src/__tests__/lsp/hover-docs.test.d.ts +10 -0
- package/dist/src/__tests__/lsp/hover-docs.test.js +210 -0
- package/dist/src/__tests__/lsp.test.js +4 -1
- package/dist/src/__tests__/mc-integration/item-entity-events.test.js +4 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-2.test.js +4 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-3.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-3.test.js +1227 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-4.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-4.test.js +1509 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-5.test.d.ts +14 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-5.test.js +1374 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-6.test.d.ts +10 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-6.test.js +759 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-7.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-7.test.js +855 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage.test.js +4 -0
- package/dist/src/__tests__/mc-integration/syntax-coverage.test.js +4 -0
- package/dist/src/__tests__/mc-validator-coverage.test.d.ts +13 -0
- package/dist/src/__tests__/mc-validator-coverage.test.js +296 -0
- package/dist/src/__tests__/mc-validator-extra.test.d.ts +13 -0
- package/dist/src/__tests__/mc-validator-extra.test.js +245 -0
- package/dist/src/__tests__/mir/lower-extra.test.d.ts +20 -0
- package/dist/src/__tests__/mir/lower-extra.test.js +361 -0
- package/dist/src/__tests__/mir/lower-extra2.test.d.ts +17 -0
- package/dist/src/__tests__/mir/lower-extra2.test.js +317 -0
- package/dist/src/__tests__/mir/lower-extra3.test.d.ts +19 -0
- package/dist/src/__tests__/mir/lower-extra3.test.js +249 -0
- package/dist/src/__tests__/mir/lower-extra4.test.d.ts +23 -0
- package/dist/src/__tests__/mir/lower-extra4.test.js +606 -0
- package/dist/src/__tests__/mir/lower-extra5.test.d.ts +25 -0
- package/dist/src/__tests__/mir/lower-extra5.test.js +543 -0
- package/dist/src/__tests__/mir/lower-extra6.test.d.ts +16 -0
- package/dist/src/__tests__/mir/lower-extra6.test.js +471 -0
- package/dist/src/__tests__/mir/lower-extra7.test.d.ts +35 -0
- package/dist/src/__tests__/mir/lower-extra7.test.js +921 -0
- package/dist/src/__tests__/mir/lower-extra8.test.d.ts +19 -0
- package/dist/src/__tests__/mir/lower-extra8.test.js +626 -0
- package/dist/src/__tests__/mir/lower-extra9.test.d.ts +14 -0
- package/dist/src/__tests__/mir/lower-extra9.test.js +717 -0
- package/dist/src/__tests__/optimizer/auto-inline.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/auto-inline.test.js +176 -0
- package/dist/src/__tests__/optimizer/cse.test.d.ts +4 -0
- package/dist/src/__tests__/optimizer/cse.test.js +178 -0
- package/dist/src/__tests__/optimizer/inline_fn.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/inline_fn.test.js +221 -0
- package/dist/src/__tests__/optimizer/licm.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/licm.test.js +244 -0
- package/dist/src/__tests__/optimizer/optimizer-extended.test.d.ts +12 -0
- package/dist/src/__tests__/optimizer/optimizer-extended.test.js +993 -0
- package/dist/src/__tests__/optimizer/strength-reduction.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/strength-reduction.test.js +86 -0
- package/dist/src/__tests__/optimizer/tco.test.d.ts +14 -0
- package/dist/src/__tests__/optimizer/tco.test.js +203 -0
- package/dist/src/__tests__/parser-coverage.test.d.ts +25 -0
- package/dist/src/__tests__/parser-coverage.test.js +491 -0
- package/dist/src/__tests__/parser-extra.test.d.ts +6 -0
- package/dist/src/__tests__/parser-extra.test.js +451 -0
- package/dist/src/__tests__/parser.test.js +12 -0
- package/dist/src/__tests__/repl-extra.test.d.ts +13 -0
- package/dist/src/__tests__/repl-extra.test.js +174 -0
- package/dist/src/__tests__/repl-server-extra.test.d.ts +10 -0
- package/dist/src/__tests__/repl-server-extra.test.js +161 -0
- package/dist/src/__tests__/repl-server.test.d.ts +6 -0
- package/dist/src/__tests__/repl-server.test.js +146 -0
- package/dist/src/__tests__/runtime-extra.test.d.ts +15 -0
- package/dist/src/__tests__/runtime-extra.test.js +732 -0
- package/dist/src/__tests__/singleton-decorator.test.d.ts +11 -0
- package/dist/src/__tests__/singleton-decorator.test.js +260 -0
- package/dist/src/__tests__/sourcemap.test.js +1 -1
- package/dist/src/__tests__/stdlib/advanced.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/advanced.test.js +301 -0
- package/dist/src/__tests__/stdlib/bigint.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bigint.test.js +83 -0
- package/dist/src/__tests__/stdlib/bits.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bits.test.js +96 -0
- package/dist/src/__tests__/stdlib/bossbar.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bossbar.test.js +72 -0
- package/dist/src/__tests__/stdlib/color.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/color.test.js +84 -0
- package/dist/src/__tests__/stdlib/combat.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/combat.test.js +64 -0
- package/dist/src/__tests__/stdlib/cooldown.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/cooldown.test.js +64 -0
- package/dist/src/__tests__/stdlib/dialog.test.js +15 -7
- package/dist/src/__tests__/stdlib/ecs.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/ecs.test.js +81 -0
- package/dist/src/__tests__/stdlib/effects.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/effects.test.js +72 -0
- package/dist/src/__tests__/stdlib/events.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/events.test.js +55 -0
- package/dist/src/__tests__/stdlib/expr.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/expr.test.js +77 -0
- package/dist/src/__tests__/stdlib/fft.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/fft.test.js +82 -0
- package/dist/src/__tests__/stdlib/graph.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/graph.test.js +102 -0
- package/dist/src/__tests__/stdlib/interactions.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/interactions.test.js +60 -0
- package/dist/src/__tests__/stdlib/inventory.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/inventory.test.js +68 -0
- package/dist/src/__tests__/stdlib/linalg.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/linalg.test.js +78 -0
- package/dist/src/__tests__/stdlib/map.test.d.ts +1 -0
- package/dist/src/__tests__/stdlib/map.test.js +84 -0
- package/dist/src/__tests__/stdlib/math.test.js +19 -6
- package/dist/src/__tests__/stdlib/math_hp.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/math_hp.test.js +80 -0
- package/dist/src/__tests__/stdlib/mobs.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/mobs.test.js +61 -0
- package/dist/src/__tests__/stdlib/noise.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/noise.test.js +73 -0
- package/dist/src/__tests__/stdlib/ode.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/ode.test.js +68 -0
- package/dist/src/__tests__/stdlib/parabola.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/parabola.test.js +77 -0
- package/dist/src/__tests__/stdlib/particles.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/particles.test.js +68 -0
- package/dist/src/__tests__/stdlib/physics.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/physics.test.js +76 -0
- package/dist/src/__tests__/stdlib/player.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/player.test.js +64 -0
- package/dist/src/__tests__/stdlib/quaternion.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/quaternion.test.js +73 -0
- package/dist/src/__tests__/stdlib/queue.test.d.ts +1 -0
- package/dist/src/__tests__/stdlib/queue.test.js +97 -0
- package/dist/src/__tests__/stdlib/random.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/random.test.js +76 -0
- package/dist/src/__tests__/stdlib/result.test.d.ts +12 -0
- package/dist/src/__tests__/stdlib/result.test.js +329 -0
- package/dist/src/__tests__/stdlib/scheduler.test.js +19 -8
- package/dist/src/__tests__/stdlib/set_int.test.d.ts +1 -0
- package/dist/src/__tests__/stdlib/set_int.test.js +88 -0
- package/dist/src/__tests__/stdlib/sets.test.d.ts +6 -0
- package/dist/src/__tests__/stdlib/sets.test.js +60 -0
- package/dist/src/__tests__/stdlib/signal.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/signal.test.js +84 -0
- package/dist/src/__tests__/stdlib/spawn.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/spawn.test.js +68 -0
- package/dist/src/__tests__/stdlib/string.test.d.ts +12 -0
- package/dist/src/__tests__/stdlib/string.test.js +231 -0
- package/dist/src/__tests__/stdlib/strings.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/strings.test.js +83 -0
- package/dist/src/__tests__/stdlib/tags.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/tags.test.js +57 -0
- package/dist/src/__tests__/stdlib/teams.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/teams.test.js +72 -0
- package/dist/src/__tests__/stdlib/timer.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/timer.test.js +79 -0
- package/dist/src/__tests__/stdlib/vec.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/vec.test.js +94 -0
- package/dist/src/__tests__/stdlib/world.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/world.test.js +72 -0
- package/dist/src/__tests__/struct-display.test.d.ts +1 -0
- package/dist/src/__tests__/struct-display.test.js +64 -0
- package/dist/src/__tests__/test-framework/runner.test.d.ts +10 -0
- package/dist/src/__tests__/test-framework/runner.test.js +193 -0
- package/dist/src/__tests__/tuner/adapters.test.d.ts +14 -0
- package/dist/src/__tests__/tuner/adapters.test.js +194 -0
- package/dist/src/__tests__/tuner/simulator-extra.test.d.ts +4 -0
- package/dist/src/__tests__/tuner/simulator-extra.test.js +193 -0
- package/dist/src/__tests__/typechecker-coverage.test.d.ts +30 -0
- package/dist/src/__tests__/typechecker-coverage.test.js +627 -0
- package/dist/src/__tests__/typechecker.test.js +3 -3
- package/dist/src/__tests__/watch-decorator.test.d.ts +1 -0
- package/dist/src/__tests__/watch-decorator.test.js +54 -0
- package/dist/src/ast/types.d.ts +102 -3
- package/dist/src/cache/incremental.d.ts +13 -14
- package/dist/src/cache/incremental.js +106 -89
- package/dist/src/cache/index.d.ts +8 -2
- package/dist/src/cache/index.js +18 -6
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.js +466 -17
- package/dist/src/config/project-config.d.ts +29 -0
- package/dist/src/config/project-config.js +180 -0
- package/dist/src/diagnostics/index.d.ts +9 -0
- package/dist/src/diagnostics/index.js +18 -1
- package/dist/src/emit/compile.d.ts +10 -0
- package/dist/src/emit/compile.js +395 -50
- package/dist/src/emit/index.d.ts +40 -0
- package/dist/src/emit/index.js +307 -14
- package/dist/src/emit/modules.js +21 -3
- package/dist/src/emit/sourcemap.d.ts +23 -27
- package/dist/src/emit/sourcemap.js +52 -30
- package/dist/src/formatter/index.js +33 -8
- package/dist/src/hir/deprecated.d.ts +13 -0
- package/dist/src/hir/deprecated.js +218 -0
- package/dist/src/hir/lower.js +114 -8
- package/dist/src/hir/monomorphize.js +22 -2
- package/dist/src/hir/types.d.ts +65 -1
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +18 -3
- package/dist/src/lexer/index.d.ts +2 -1
- package/dist/src/lexer/index.js +39 -3
- package/dist/src/lint/index.d.ts +45 -0
- package/dist/src/lint/index.js +930 -0
- package/dist/src/lir/lower.js +29 -2
- package/dist/src/lir/types.d.ts +2 -0
- package/dist/src/lsp/server.js +92 -5
- package/dist/src/mir/lower.js +775 -34
- package/dist/src/mir/macro.js +36 -2
- package/dist/src/mir/types.d.ts +12 -0
- package/dist/src/mir/verify.js +9 -0
- package/dist/src/optimizer/auto-inline.d.ts +2 -0
- package/dist/src/optimizer/auto-inline.js +67 -0
- package/dist/src/optimizer/cse.d.ts +20 -0
- package/dist/src/optimizer/cse.js +234 -0
- package/dist/src/optimizer/inline.d.ts +26 -0
- package/dist/src/optimizer/inline.js +286 -0
- package/dist/src/optimizer/interprocedural.js +4 -0
- package/dist/src/optimizer/licm.d.ts +32 -0
- package/dist/src/optimizer/licm.js +371 -0
- package/dist/src/optimizer/pipeline.js +12 -2
- package/dist/src/optimizer/strength_reduction.d.ts +15 -0
- package/dist/src/optimizer/strength_reduction.js +90 -0
- package/dist/src/optimizer/tco.d.ts +53 -0
- package/dist/src/optimizer/tco.js +238 -0
- package/dist/src/parser/index.d.ts +32 -0
- package/dist/src/parser/index.js +421 -59
- package/dist/src/repl-server.d.ts +13 -0
- package/dist/src/repl-server.js +127 -0
- package/dist/src/structs/expand.d.ts +15 -0
- package/dist/src/structs/expand.js +46 -0
- package/dist/src/testing/runner.d.ts +40 -0
- package/dist/src/testing/runner.js +237 -0
- package/dist/src/typechecker/index.d.ts +3 -0
- package/dist/src/typechecker/index.js +254 -9
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/doc-drafts/redscript-docs/docs/en/stdlib/graph.md +104 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/parabola.md +113 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/pathfind.md +104 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/physics.md +134 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/quaternion.md +135 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/graph.md +104 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/parabola.md +113 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/pathfind.md +104 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/physics.md +134 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/quaternion.md +135 -0
- package/docs/stdlib/result.md +156 -0
- package/docs/stdlib/result.zh.md +156 -0
- package/editors/vscode/fixtures/test.mcrs +7 -0
- package/editors/vscode/out/extension.js +2095 -225
- package/editors/vscode/out/lsp-server.js +519 -51
- package/editors/vscode/package-lock.json +9 -4
- package/editors/vscode/package.json +1 -1
- package/examples/display-demo.mcrs +64 -0
- package/examples/game/racing.mcrs +301 -0
- package/examples/game/tower_defense.mcrs +311 -0
- package/examples/math/physics_sim.mcrs +322 -0
- package/examples/rpg/boss_fight.mcrs +313 -0
- package/examples/rpg/health_system.mcrs +237 -0
- package/examples/rpg/inventory.mcrs +265 -0
- package/examples/util/debug_hud.mcrs +279 -0
- package/jest.config.js +10 -0
- package/package.json +12 -3
- package/playground/index.html +823 -0
- package/scripts/gen-docs.ts +533 -0
- package/scripts/update-redscript-docs-stdlib.sh +770 -0
- package/src/__tests__/budget.test.ts +5 -0
- package/src/__tests__/cache/cache-behavior.test.ts +480 -0
- package/src/__tests__/cache-extra.test.ts +199 -0
- package/src/__tests__/cli-docs.test.ts +77 -0
- package/src/__tests__/cli-init.test.ts +91 -0
- package/src/__tests__/cli-publish.test.ts +190 -0
- package/src/__tests__/cli.test.ts +117 -1
- package/src/__tests__/compile-preprocess.test.ts +366 -0
- package/src/__tests__/compiler/break-stmt.test.ts +66 -0
- package/src/__tests__/compiler/const-decl.test.ts +141 -0
- package/src/__tests__/compiler/continue-stmt.test.ts +81 -0
- package/src/__tests__/compiler/coroutine-extended.test.ts +723 -0
- package/src/__tests__/compiler/deprecated.test.ts +305 -0
- package/src/__tests__/compiler/do-while.test.ts +130 -0
- package/src/__tests__/compiler/enum-payload.test.ts +299 -0
- package/src/__tests__/compiler/interface.test.ts +287 -0
- package/src/__tests__/compiler/labeled-loops.test.ts +279 -0
- package/src/__tests__/compiler/match-string.test.ts +45 -0
- package/src/__tests__/compiler/memoize.test.ts +126 -0
- package/src/__tests__/compiler/method-chain.test.ts +121 -0
- package/src/__tests__/compiler/module-import.test.ts +240 -0
- package/src/__tests__/compiler/option-extensions.test.ts +207 -0
- package/src/__tests__/compiler/profile-decorator.test.ts +79 -0
- package/src/__tests__/compiler/string-advanced.test.ts +310 -0
- package/src/__tests__/compiler/struct-extends.test.ts +109 -0
- package/src/__tests__/compiler/throttle-retry.test.ts +191 -0
- package/src/__tests__/compiler/tuple-type.test.ts +263 -0
- package/src/__tests__/compiler/watch-decorator.test.ts +72 -0
- package/src/__tests__/config/project-config.test.ts +181 -0
- package/src/__tests__/config-decorator.test.ts +157 -0
- package/src/__tests__/diagnostics-extra.test.ts +155 -0
- package/src/__tests__/emit/compile-branches.test.ts +135 -0
- package/src/__tests__/emit/compile-coverage.test.ts +696 -0
- package/src/__tests__/emit/compile-extra-branches.test.ts +228 -0
- package/src/__tests__/emit/compile-mocked-branches.test.ts +249 -0
- package/src/__tests__/emit/compile.test.ts +6 -1
- package/src/__tests__/emit/execute-chain.test.ts +114 -0
- package/src/__tests__/emit/index.test.ts +2 -1
- package/src/__tests__/emit/modules-branches.test.ts +90 -0
- package/src/__tests__/emit/modules-coverage.test.ts +241 -0
- package/src/__tests__/emit/modules-errors.test.ts +192 -0
- package/src/__tests__/emit/modules-rewrite.test.ts +232 -0
- package/src/__tests__/emit/source-map.test.ts +152 -0
- package/src/__tests__/enum.test.ts +9 -4
- package/src/__tests__/error-recovery.test.ts +226 -0
- package/src/__tests__/events-types-extra.test.ts +110 -0
- package/src/__tests__/events-types.test.ts +66 -0
- package/src/__tests__/formatter.test.ts +15 -5
- package/src/__tests__/generics.test.ts +16 -9
- package/src/__tests__/hir/lower-extra.test.ts +151 -0
- package/src/__tests__/hir/monomorphize-coverage.test.ts +432 -0
- package/src/__tests__/hir/monomorphize-extra.test.ts +220 -0
- package/src/__tests__/hir/monomorphize-extra2.test.ts +350 -0
- package/src/__tests__/impl.test.ts +12 -8
- package/src/__tests__/incremental.test.ts +10 -2
- package/src/__tests__/index-extra.test.ts +79 -0
- package/src/__tests__/lexer.test.ts +2 -2
- package/src/__tests__/lint/hir-coverage.test.ts +1716 -0
- package/src/__tests__/lint/rules-coverage.test.ts +598 -0
- package/src/__tests__/lint/rules.test.ts +230 -0
- package/src/__tests__/lir/lower.test.ts +33 -0
- package/src/__tests__/lir/verify.test.ts +33 -0
- package/src/__tests__/lsp/completion.test.ts +687 -0
- package/src/__tests__/lsp/definition.test.ts +499 -0
- package/src/__tests__/lsp/diagnostics.test.ts +108 -0
- package/src/__tests__/lsp/hover-docs.test.ts +222 -0
- package/src/__tests__/lsp.test.ts +4 -1
- package/src/__tests__/mc-integration/item-entity-events.test.ts +5 -0
- package/src/__tests__/mc-integration/stdlib-coverage-2.test.ts +5 -0
- package/src/__tests__/mc-integration/stdlib-coverage-3.test.ts +1105 -0
- package/src/__tests__/mc-integration/stdlib-coverage-4.test.ts +1366 -0
- package/src/__tests__/mc-integration/stdlib-coverage-5.test.ts +1245 -0
- package/src/__tests__/mc-integration/stdlib-coverage-6.test.ts +755 -0
- package/src/__tests__/mc-integration/stdlib-coverage-7.test.ts +771 -0
- package/src/__tests__/mc-integration/stdlib-coverage.test.ts +5 -0
- package/src/__tests__/mc-integration/syntax-coverage.test.ts +5 -0
- package/src/__tests__/mc-validator-coverage.test.ts +325 -0
- package/src/__tests__/mc-validator-extra.test.ts +252 -0
- package/src/__tests__/mir/lower-extra.test.ts +402 -0
- package/src/__tests__/mir/lower-extra2.test.ts +348 -0
- package/src/__tests__/mir/lower-extra3.test.ts +277 -0
- package/src/__tests__/mir/lower-extra4.test.ts +636 -0
- package/src/__tests__/mir/lower-extra5.test.ts +612 -0
- package/src/__tests__/mir/lower-extra6.test.ts +520 -0
- package/src/__tests__/mir/lower-extra7.test.ts +1045 -0
- package/src/__tests__/mir/lower-extra8.test.ts +704 -0
- package/src/__tests__/mir/lower-extra9.test.ts +821 -0
- package/src/__tests__/optimizer/auto-inline.test.ts +206 -0
- package/src/__tests__/optimizer/cse.test.ts +195 -0
- package/src/__tests__/optimizer/inline_fn.test.ts +263 -0
- package/src/__tests__/optimizer/licm.test.ts +358 -0
- package/src/__tests__/optimizer/nbt-coalesce.test.ts +147 -0
- package/src/__tests__/optimizer/optimizer-extended.test.ts +1081 -0
- package/src/__tests__/optimizer/scoreboard-batch.test.ts +141 -0
- package/src/__tests__/optimizer/strength-reduction.test.ts +111 -0
- package/src/__tests__/optimizer/tco-coverage.test.ts +309 -0
- package/src/__tests__/optimizer/tco.test.ts +238 -0
- package/src/__tests__/option.test.ts +14 -7
- package/src/__tests__/parser-coverage.test.ts +576 -0
- package/src/__tests__/parser-extra.test.ts +531 -0
- package/src/__tests__/parser.test.ts +14 -0
- package/src/__tests__/repl-extra.test.ts +195 -0
- package/src/__tests__/repl-server-extra.test.ts +150 -0
- package/src/__tests__/repl-server.test.ts +122 -0
- package/src/__tests__/runtime-extra.test.ts +862 -0
- package/src/__tests__/singleton-decorator.test.ts +285 -0
- package/src/__tests__/sourcemap.test.ts +1 -1
- package/src/__tests__/stdlib/advanced.test.ts +312 -0
- package/src/__tests__/stdlib/bigint.test.ts +57 -0
- package/src/__tests__/stdlib/bits.test.ts +75 -0
- package/src/__tests__/stdlib/bossbar.test.ts +45 -0
- package/src/__tests__/stdlib/color.test.ts +60 -0
- package/src/__tests__/stdlib/combat.test.ts +35 -0
- package/src/__tests__/stdlib/cooldown.test.ts +35 -0
- package/src/__tests__/stdlib/dialog.test.ts +14 -6
- package/src/__tests__/stdlib/ecs.test.ts +54 -0
- package/src/__tests__/stdlib/effects.test.ts +45 -0
- package/src/__tests__/stdlib/events.test.ts +23 -0
- package/src/__tests__/stdlib/expr.test.ts +48 -0
- package/src/__tests__/stdlib/fft.test.ts +54 -0
- package/src/__tests__/stdlib/graph.test.ts +77 -0
- package/src/__tests__/stdlib/interactions.test.ts +30 -0
- package/src/__tests__/stdlib/inventory.test.ts +40 -0
- package/src/__tests__/stdlib/linalg.test.ts +52 -0
- package/src/__tests__/stdlib/map.test.ts +55 -0
- package/src/__tests__/stdlib/math.test.ts +19 -5
- package/src/__tests__/stdlib/math_hp.test.ts +55 -0
- package/src/__tests__/stdlib/mobs.test.ts +40 -0
- package/src/__tests__/stdlib/noise.test.ts +46 -0
- package/src/__tests__/stdlib/ode.test.ts +40 -0
- package/src/__tests__/stdlib/parabola.test.ts +51 -0
- package/src/__tests__/stdlib/particles.test.ts +40 -0
- package/src/__tests__/stdlib/physics.test.ts +50 -0
- package/src/__tests__/stdlib/player.test.ts +35 -0
- package/src/__tests__/stdlib/quaternion.test.ts +46 -0
- package/src/__tests__/stdlib/queue.test.ts +73 -0
- package/src/__tests__/stdlib/random.test.ts +50 -0
- package/src/__tests__/stdlib/result.test.ts +326 -0
- package/src/__tests__/stdlib/scheduler.test.ts +18 -7
- package/src/__tests__/stdlib/set_int.test.ts +62 -0
- package/src/__tests__/stdlib/sets.test.ts +28 -0
- package/src/__tests__/stdlib/signal.test.ts +60 -0
- package/src/__tests__/stdlib/spawn.test.ts +40 -0
- package/src/__tests__/stdlib/string.test.ts +224 -0
- package/src/__tests__/stdlib/strings.test.ts +55 -0
- package/src/__tests__/stdlib/tags.test.ts +32 -0
- package/src/__tests__/stdlib/teams.test.ts +45 -0
- package/src/__tests__/stdlib/timer.test.ts +53 -0
- package/src/__tests__/stdlib/vec.test.ts +72 -0
- package/src/__tests__/stdlib/world.test.ts +45 -0
- package/src/__tests__/struct-display.test.ts +69 -0
- package/src/__tests__/test-framework/runner.test.ts +208 -0
- package/src/__tests__/tuner/adapters.test.ts +232 -0
- package/src/__tests__/tuner/simulator-extra.test.ts +222 -0
- package/src/__tests__/tuple.test.ts +11 -4
- package/src/__tests__/typechecker-coverage.test.ts +671 -0
- package/src/__tests__/typechecker.test.ts +4 -3
- package/src/__tests__/watch-decorator.test.ts +59 -0
- package/src/ast/types.ts +65 -3
- package/src/cache/incremental.ts +128 -99
- package/src/cache/index.ts +35 -8
- package/src/cli.ts +538 -29
- package/src/config/project-config.ts +176 -0
- package/src/diagnostics/index.ts +22 -0
- package/src/docs.ts +98 -0
- package/src/emit/compile.ts +408 -51
- package/src/emit/index.ts +366 -18
- package/src/emit/modules.ts +19 -3
- package/src/emit/sourcemap.ts +64 -43
- package/src/formatter/index.ts +35 -8
- package/src/hir/deprecated.ts +212 -0
- package/src/hir/lower.ts +128 -8
- package/src/hir/monomorphize.ts +24 -2
- package/src/hir/types.ts +26 -1
- package/src/index.ts +23 -3
- package/src/lexer/index.ts +45 -6
- package/src/lint/index.ts +922 -0
- package/src/lir/lower.ts +30 -2
- package/src/lir/types.ts +4 -0
- package/src/lsp/server.ts +100 -1
- package/src/mir/lower.ts +785 -40
- package/src/mir/macro.ts +30 -2
- package/src/mir/types.ts +13 -0
- package/src/mir/verify.ts +10 -2
- package/src/optimizer/auto-inline.ts +86 -0
- package/src/optimizer/copy_prop.ts +2 -2
- package/src/optimizer/coroutine.ts +3 -3
- package/src/optimizer/cse.ts +205 -0
- package/src/optimizer/dce.ts +2 -2
- package/src/optimizer/inline.ts +335 -0
- package/src/optimizer/interprocedural.ts +5 -1
- package/src/optimizer/licm.ts +454 -0
- package/src/optimizer/nbt-coalesce.ts +109 -0
- package/src/optimizer/pipeline.ts +16 -2
- package/src/optimizer/scoreboard-batch.ts +52 -0
- package/src/optimizer/strength_reduction.ts +95 -0
- package/src/optimizer/tco.ts +267 -0
- package/src/optimizer/unroll.ts +2 -2
- package/src/parser/index.ts +426 -53
- package/src/repl-server.ts +102 -0
- package/src/stdlib/advanced.mcrs +271 -101
- package/src/stdlib/bigint.mcrs +97 -11
- package/src/stdlib/bits.mcrs +75 -12
- package/src/stdlib/bossbar.mcrs +37 -8
- package/src/stdlib/calculus.mcrs +82 -26
- package/src/stdlib/color.mcrs +98 -16
- package/src/stdlib/combat.mcrs +23 -5
- package/src/stdlib/cooldown.mcrs +19 -0
- package/src/stdlib/dialog.mcrs +45 -7
- package/src/stdlib/easing.mcrs +132 -12
- package/src/stdlib/ecs.mcrs +142 -25
- package/src/stdlib/effects.mcrs +88 -12
- package/src/stdlib/events.mcrs +21 -2
- package/src/stdlib/expr.mcrs +18 -3
- package/src/stdlib/fft.mcrs +66 -56
- package/src/stdlib/geometry.mcrs +137 -39
- package/src/stdlib/graph.mcrs +73 -0
- package/src/stdlib/heap.mcrs +49 -8
- package/src/stdlib/i18n/zh.yaml +2891 -0
- package/src/stdlib/interactions.mcrs +43 -20
- package/src/stdlib/inventory.mcrs +14 -3
- package/src/stdlib/linalg.mcrs +185 -30
- package/src/stdlib/list.mcrs +168 -18
- package/src/stdlib/map.mcrs +112 -0
- package/src/stdlib/math.mcrs +68 -18
- package/src/stdlib/math_hp.mcrs +124 -33
- package/src/stdlib/matrix.mcrs +133 -20
- package/src/stdlib/mobs.mcrs +87 -0
- package/src/stdlib/noise.mcrs +65 -21
- package/src/stdlib/ode.mcrs +96 -0
- package/src/stdlib/parabola.mcrs +104 -29
- package/src/stdlib/particles.mcrs +78 -21
- package/src/stdlib/pathfind.mcrs +89 -35
- package/src/stdlib/physics.mcrs +134 -26
- package/src/stdlib/player.mcrs +18 -0
- package/src/stdlib/quaternion.mcrs +213 -9
- package/src/stdlib/queue.mcrs +123 -0
- package/src/stdlib/random.mcrs +63 -18
- package/src/stdlib/result.mcrs +111 -0
- package/src/stdlib/scheduler.mcrs +59 -10
- package/src/stdlib/set_int.mcrs +240 -0
- package/src/stdlib/sets.mcrs +49 -19
- package/src/stdlib/signal.mcrs +151 -79
- package/src/stdlib/sort.mcrs +44 -24
- package/src/stdlib/spawn.mcrs +30 -7
- package/src/stdlib/state.mcrs +40 -5
- package/src/stdlib/strings.mcrs +131 -3
- package/src/stdlib/tags.mcrs +2 -2
- package/src/stdlib/teams.mcrs +22 -10
- package/src/stdlib/timer.mcrs +36 -6
- package/src/stdlib/vec.mcrs +44 -9
- package/src/stdlib/world.mcrs +57 -25
- package/src/structs/expand.ts +64 -0
- package/src/testing/runner.ts +271 -0
- package/src/typechecker/index.ts +273 -9
package/dist/src/ast/types.d.ts
CHANGED
|
@@ -250,6 +250,15 @@ export type Expr = {
|
|
|
250
250
|
enumName: string;
|
|
251
251
|
variant: string;
|
|
252
252
|
span?: Span;
|
|
253
|
+
} | {
|
|
254
|
+
kind: 'enum_construct';
|
|
255
|
+
enumName: string;
|
|
256
|
+
variant: string;
|
|
257
|
+
args: {
|
|
258
|
+
name: string;
|
|
259
|
+
value: Expr;
|
|
260
|
+
}[];
|
|
261
|
+
span?: Span;
|
|
253
262
|
} | (LambdaExpr & {
|
|
254
263
|
span?: Span;
|
|
255
264
|
}) | {
|
|
@@ -263,6 +272,11 @@ export type Expr = {
|
|
|
263
272
|
} | {
|
|
264
273
|
kind: 'none_lit';
|
|
265
274
|
span?: Span;
|
|
275
|
+
} | {
|
|
276
|
+
kind: 'unwrap_or';
|
|
277
|
+
opt: Expr;
|
|
278
|
+
default_: Expr;
|
|
279
|
+
span?: Span;
|
|
266
280
|
} | {
|
|
267
281
|
kind: 'type_cast';
|
|
268
282
|
expr: Expr;
|
|
@@ -387,6 +401,11 @@ export type MatchPattern = {
|
|
|
387
401
|
} | {
|
|
388
402
|
kind: 'PatExpr';
|
|
389
403
|
expr: Expr;
|
|
404
|
+
} | {
|
|
405
|
+
kind: 'PatEnum';
|
|
406
|
+
enumName: string;
|
|
407
|
+
variant: string;
|
|
408
|
+
bindings: string[];
|
|
390
409
|
};
|
|
391
410
|
export type Stmt = {
|
|
392
411
|
kind: 'let';
|
|
@@ -400,6 +419,12 @@ export type Stmt = {
|
|
|
400
419
|
type?: TypeNode;
|
|
401
420
|
init: Expr;
|
|
402
421
|
span?: Span;
|
|
422
|
+
} | {
|
|
423
|
+
kind: 'const_decl';
|
|
424
|
+
name: string;
|
|
425
|
+
type: TypeNode;
|
|
426
|
+
value: Expr;
|
|
427
|
+
span?: Span;
|
|
403
428
|
} | {
|
|
404
429
|
kind: 'expr';
|
|
405
430
|
expr: Expr;
|
|
@@ -414,6 +439,19 @@ export type Stmt = {
|
|
|
414
439
|
} | {
|
|
415
440
|
kind: 'continue';
|
|
416
441
|
span?: Span;
|
|
442
|
+
} | {
|
|
443
|
+
kind: 'break_label';
|
|
444
|
+
label: string;
|
|
445
|
+
span?: Span;
|
|
446
|
+
} | {
|
|
447
|
+
kind: 'continue_label';
|
|
448
|
+
label: string;
|
|
449
|
+
span?: Span;
|
|
450
|
+
} | {
|
|
451
|
+
kind: 'labeled_loop';
|
|
452
|
+
label: string;
|
|
453
|
+
body: Stmt;
|
|
454
|
+
span?: Span;
|
|
417
455
|
} | {
|
|
418
456
|
kind: 'if';
|
|
419
457
|
cond: Expr;
|
|
@@ -425,6 +463,16 @@ export type Stmt = {
|
|
|
425
463
|
cond: Expr;
|
|
426
464
|
body: Block;
|
|
427
465
|
span?: Span;
|
|
466
|
+
} | {
|
|
467
|
+
kind: 'do_while';
|
|
468
|
+
cond: Expr;
|
|
469
|
+
body: Block;
|
|
470
|
+
span?: Span;
|
|
471
|
+
} | {
|
|
472
|
+
kind: 'repeat';
|
|
473
|
+
count: number;
|
|
474
|
+
body: Block;
|
|
475
|
+
span?: Span;
|
|
428
476
|
} | {
|
|
429
477
|
kind: 'for';
|
|
430
478
|
init?: Stmt;
|
|
@@ -475,6 +523,12 @@ export type Stmt = {
|
|
|
475
523
|
then: Block;
|
|
476
524
|
else_?: Block;
|
|
477
525
|
span?: Span;
|
|
526
|
+
} | {
|
|
527
|
+
kind: 'while_let_some';
|
|
528
|
+
binding: string;
|
|
529
|
+
init: Expr;
|
|
530
|
+
body: Block;
|
|
531
|
+
span?: Span;
|
|
478
532
|
} | {
|
|
479
533
|
kind: 'as_block';
|
|
480
534
|
selector: EntitySelector;
|
|
@@ -503,9 +557,10 @@ export type Stmt = {
|
|
|
503
557
|
};
|
|
504
558
|
export type Block = Stmt[];
|
|
505
559
|
export interface Decorator {
|
|
506
|
-
name: 'tick' | 'load' | 'on' | 'on_trigger' | 'on_advancement' | 'on_craft' | 'on_death' | 'on_login' | 'on_join_team' | 'keep' | 'require_on_load' | 'coroutine' | 'schedule';
|
|
560
|
+
name: 'tick' | 'load' | 'watch' | 'on' | 'on_trigger' | 'on_advancement' | 'on_craft' | 'on_death' | 'on_login' | 'on_join_team' | 'keep' | 'require_on_load' | 'coroutine' | 'schedule' | 'deprecated' | 'inline' | 'no-inline' | 'config' | 'singleton' | 'profile' | 'throttle' | 'retry' | 'memoize' | 'test';
|
|
507
561
|
args?: {
|
|
508
562
|
rate?: number;
|
|
563
|
+
objective?: string;
|
|
509
564
|
eventType?: string;
|
|
510
565
|
trigger?: string;
|
|
511
566
|
advancement?: string;
|
|
@@ -514,6 +569,16 @@ export interface Decorator {
|
|
|
514
569
|
batch?: number;
|
|
515
570
|
onDone?: string;
|
|
516
571
|
ticks?: number;
|
|
572
|
+
/** @deprecated decorator message */
|
|
573
|
+
message?: string;
|
|
574
|
+
/** @config decorator: config key name */
|
|
575
|
+
configKey?: string;
|
|
576
|
+
/** @config decorator: default value */
|
|
577
|
+
configDefault?: number;
|
|
578
|
+
/** @retry decorator: max retry count */
|
|
579
|
+
max?: number;
|
|
580
|
+
/** @test decorator: human-readable test label */
|
|
581
|
+
testLabel?: string;
|
|
517
582
|
};
|
|
518
583
|
/** Raw positional arguments (used by @requires and future generic decorators). */
|
|
519
584
|
rawArgs?: Array<{
|
|
@@ -536,6 +601,8 @@ export interface FnDecl {
|
|
|
536
601
|
isLibraryFn?: boolean;
|
|
537
602
|
/** True when declared with `export fn` or `@keep fn` — survives DCE. */
|
|
538
603
|
isExported?: boolean;
|
|
604
|
+
/** Scoreboard objective watched by @watch("..."), if present. */
|
|
605
|
+
watchObjective?: string;
|
|
539
606
|
name: string;
|
|
540
607
|
/** Generic type parameter names, e.g. ['T'] for fn foo<T>(...) */
|
|
541
608
|
typeParams?: string[];
|
|
@@ -544,6 +611,7 @@ export interface FnDecl {
|
|
|
544
611
|
decorators: Decorator[];
|
|
545
612
|
body: Block;
|
|
546
613
|
span?: Span;
|
|
614
|
+
sourceFile?: string;
|
|
547
615
|
}
|
|
548
616
|
export interface StructField {
|
|
549
617
|
name: string;
|
|
@@ -551,18 +619,42 @@ export interface StructField {
|
|
|
551
619
|
}
|
|
552
620
|
export interface StructDecl {
|
|
553
621
|
name: string;
|
|
622
|
+
extends?: string;
|
|
554
623
|
fields: StructField[];
|
|
624
|
+
/** True when the struct was declared with `@singleton` */
|
|
625
|
+
isSingleton?: boolean;
|
|
555
626
|
span?: Span;
|
|
556
627
|
}
|
|
557
628
|
export interface ImplBlock {
|
|
558
629
|
kind: 'impl_block';
|
|
559
630
|
typeName: string;
|
|
631
|
+
/** Trait name when declared as `impl TraitName for TypeName` (e.g. "Display") */
|
|
632
|
+
traitName?: string;
|
|
560
633
|
methods: FnDecl[];
|
|
561
634
|
span?: Span;
|
|
562
635
|
}
|
|
636
|
+
/** A method signature in an interface body (no body) */
|
|
637
|
+
export interface InterfaceMethod {
|
|
638
|
+
name: string;
|
|
639
|
+
params: Param[];
|
|
640
|
+
returnType?: TypeNode;
|
|
641
|
+
span?: Span;
|
|
642
|
+
}
|
|
643
|
+
/** `interface Drawable { fn draw(self, x: int, y: int) ... }` */
|
|
644
|
+
export interface InterfaceDecl {
|
|
645
|
+
name: string;
|
|
646
|
+
methods: InterfaceMethod[];
|
|
647
|
+
span?: Span;
|
|
648
|
+
}
|
|
649
|
+
export interface EnumPayloadField {
|
|
650
|
+
name: string;
|
|
651
|
+
type: TypeNode;
|
|
652
|
+
}
|
|
563
653
|
export interface EnumVariant {
|
|
564
654
|
name: string;
|
|
565
655
|
value?: number;
|
|
656
|
+
/** Payload fields for tuple-like variants, e.g. RGB(r: int, g: int, b: int) */
|
|
657
|
+
fields?: EnumPayloadField[];
|
|
566
658
|
}
|
|
567
659
|
export interface EnumDecl {
|
|
568
660
|
name: string;
|
|
@@ -581,13 +673,18 @@ export interface GlobalDecl {
|
|
|
581
673
|
type: TypeNode;
|
|
582
674
|
init: Expr;
|
|
583
675
|
mutable: boolean;
|
|
676
|
+
/** Present when the global was declared with @config("key", default: value) */
|
|
677
|
+
configKey?: string;
|
|
678
|
+
/** Default value for @config globals */
|
|
679
|
+
configDefault?: number;
|
|
584
680
|
span?: Span;
|
|
585
681
|
}
|
|
586
682
|
export interface ImportDecl {
|
|
587
683
|
/** The module being imported from, e.g. "math" in `import math::sin` */
|
|
588
684
|
moduleName: string;
|
|
589
|
-
/** The symbol being imported, or '*' for wildcard
|
|
590
|
-
|
|
685
|
+
/** The symbol being imported, or '*' for wildcard.
|
|
686
|
+
* Undefined when this is a whole-module file import (`import player_utils`). */
|
|
687
|
+
symbol?: string;
|
|
591
688
|
span?: Span;
|
|
592
689
|
}
|
|
593
690
|
export interface Program {
|
|
@@ -602,6 +699,8 @@ export interface Program {
|
|
|
602
699
|
consts: ConstDecl[];
|
|
603
700
|
/** Phase 5b: module imports (`import math::sin;`) */
|
|
604
701
|
imports: ImportDecl[];
|
|
702
|
+
/** Interface / trait declarations */
|
|
703
|
+
interfaces: InterfaceDecl[];
|
|
605
704
|
/** True when the source file declares `module library;`.
|
|
606
705
|
* Library-mode: all functions are DCE-eligible by default — none are treated
|
|
607
706
|
* as MC entry points unless they carry @tick / @load / @on / @keep etc. */
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Incremental compilation — only recompile files whose content
|
|
3
|
-
*
|
|
2
|
+
* Incremental compilation — only recompile files whose content, imports,
|
|
3
|
+
* or reverse dependents changed since the last build.
|
|
4
4
|
*/
|
|
5
|
-
import { type CompileResult } from '../emit/compile';
|
|
5
|
+
import { type CompileOptions, type CompileResult } from '../emit/compile';
|
|
6
6
|
import { FileCache } from './index';
|
|
7
7
|
import { DependencyGraph } from './deps';
|
|
8
8
|
export interface IncrementalOptions {
|
|
9
9
|
namespace?: string;
|
|
10
10
|
/** Output directory for compiled files. */
|
|
11
11
|
output: string;
|
|
12
|
+
generateSourceMap?: boolean;
|
|
13
|
+
mcVersion?: CompileOptions['mcVersion'];
|
|
14
|
+
lenient?: boolean;
|
|
15
|
+
includeDirs?: string[];
|
|
12
16
|
}
|
|
13
17
|
export interface IncrementalResult {
|
|
14
18
|
/** Number of files that were recompiled. */
|
|
@@ -19,17 +23,12 @@ export interface IncrementalResult {
|
|
|
19
23
|
errors: Map<string, string>;
|
|
20
24
|
/** Per-file compile results (only for recompiled files). */
|
|
21
25
|
results: Map<string, CompileResult>;
|
|
26
|
+
/** Files skipped due to cache hit. */
|
|
27
|
+
skippedFiles: string[];
|
|
28
|
+
/** Files rebuilt in this run. */
|
|
29
|
+
rebuiltFiles: string[];
|
|
30
|
+
/** Elapsed wall time for this run. */
|
|
31
|
+
elapsedMs: number;
|
|
22
32
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Compile a set of entry files incrementally.
|
|
25
|
-
*
|
|
26
|
-
* For each file:
|
|
27
|
-
* - Compute content hash of the file and all its transitive imports
|
|
28
|
-
* - If all hashes match the previous build → skip (cache hit)
|
|
29
|
-
* - If any hash changed → recompile from scratch
|
|
30
|
-
*/
|
|
31
33
|
export declare function compileIncremental(files: string[], cache: FileCache, depGraph: DependencyGraph, options: IncrementalOptions): IncrementalResult;
|
|
32
|
-
/**
|
|
33
|
-
* Reset the in-memory compile cache. Useful for testing.
|
|
34
|
-
*/
|
|
35
34
|
export declare function resetCompileCache(): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Incremental compilation — only recompile files whose content
|
|
4
|
-
*
|
|
3
|
+
* Incremental compilation — only recompile files whose content, imports,
|
|
4
|
+
* or reverse dependents changed since the last build.
|
|
5
5
|
*/
|
|
6
6
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
7
|
if (k2 === undefined) k2 = k;
|
|
@@ -39,127 +39,144 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.compileIncremental = compileIncremental;
|
|
41
41
|
exports.resetCompileCache = resetCompileCache;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
42
43
|
const path = __importStar(require("path"));
|
|
43
44
|
const compile_1 = require("../emit/compile");
|
|
44
|
-
const
|
|
45
|
-
const compiledCache = new Map();
|
|
46
|
-
/**
|
|
47
|
-
* Compile a set of entry files incrementally.
|
|
48
|
-
*
|
|
49
|
-
* For each file:
|
|
50
|
-
* - Compute content hash of the file and all its transitive imports
|
|
51
|
-
* - If all hashes match the previous build → skip (cache hit)
|
|
52
|
-
* - If any hash changed → recompile from scratch
|
|
53
|
-
*/
|
|
45
|
+
const deps_1 = require("./deps");
|
|
54
46
|
function compileIncremental(files, cache, depGraph, options) {
|
|
47
|
+
const start = Date.now();
|
|
48
|
+
const normalizedEntries = [...new Set(files.map(file => path.resolve(file)))];
|
|
55
49
|
const result = {
|
|
56
50
|
recompiled: 0,
|
|
57
51
|
cached: 0,
|
|
58
52
|
errors: new Map(),
|
|
59
53
|
results: new Map(),
|
|
54
|
+
skippedFiles: [],
|
|
55
|
+
rebuiltFiles: [],
|
|
56
|
+
elapsedMs: 0,
|
|
60
57
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
const source = fs.readFileSync(absFile, 'utf-8');
|
|
66
|
-
depGraph.addFile(absFile, source);
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
// File might have been deleted
|
|
70
|
-
depGraph.removeFile(absFile);
|
|
71
|
-
}
|
|
58
|
+
if (normalizedEntries.length === 0) {
|
|
59
|
+
result.elapsedMs = Date.now() - start;
|
|
60
|
+
return result;
|
|
72
61
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const absFile = path.resolve(file);
|
|
80
|
-
const allDeps = depGraph.getTransitiveDeps(absFile);
|
|
81
|
-
allSourceFiles.add(absFile);
|
|
82
|
-
for (const dep of allDeps)
|
|
83
|
-
allSourceFiles.add(dep);
|
|
62
|
+
depGraph.clear();
|
|
63
|
+
const discoveredFiles = discoverDependencyGraph(normalizedEntries, depGraph);
|
|
64
|
+
const changedFiles = new Set();
|
|
65
|
+
for (const file of discoveredFiles) {
|
|
66
|
+
if (cache.hasChanged(file))
|
|
67
|
+
changedFiles.add(file);
|
|
84
68
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
69
|
+
const dirtyFiles = depGraph.computeDirtySet(changedFiles);
|
|
70
|
+
for (const entry of normalizedEntries) {
|
|
71
|
+
if (!discoveredFiles.has(entry))
|
|
72
|
+
dirtyFiles.add(entry);
|
|
89
73
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
for (const unitFile of unitFiles) {
|
|
104
|
-
if (changedSourceFiles.has(unitFile)) {
|
|
105
|
-
needsRecompile = true;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
// Also check if the set of dependencies changed
|
|
110
|
-
if (!needsRecompile && prevEntry.depHashes.size !== unitFiles.length) {
|
|
111
|
-
needsRecompile = true;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (!needsRecompile) {
|
|
115
|
-
// Cache hit — write cached result to output
|
|
116
|
-
const cached = compiledCache.get(absFile);
|
|
117
|
-
writeBuildOutput(cached.result, options.output);
|
|
74
|
+
for (const entryFile of normalizedEntries) {
|
|
75
|
+
const entryDeps = depGraph.getTransitiveDeps(entryFile);
|
|
76
|
+
const entryUnit = new Set([entryFile, ...entryDeps]);
|
|
77
|
+
const cachedEntry = cache.get(entryFile);
|
|
78
|
+
const cachedDepList = new Set(cachedEntry?.dependencies ?? []);
|
|
79
|
+
const hasDependencyDrift = cachedDepList.size !== entryUnit.size ||
|
|
80
|
+
[...entryUnit].some(file => !cachedDepList.has(file));
|
|
81
|
+
const canUseCache = !dirtyFiles.has(entryFile) &&
|
|
82
|
+
!hasDependencyDrift &&
|
|
83
|
+
!!cachedEntry?.outputFiles &&
|
|
84
|
+
cachedEntry.outputFiles.length > 0;
|
|
85
|
+
if (canUseCache) {
|
|
86
|
+
writeBuildOutput(cachedEntry.outputFiles, options.output);
|
|
118
87
|
result.cached++;
|
|
88
|
+
result.skippedFiles.push(entryFile);
|
|
119
89
|
continue;
|
|
120
90
|
}
|
|
121
|
-
// Cache miss — recompile
|
|
122
91
|
try {
|
|
123
|
-
const source = fs.readFileSync(
|
|
124
|
-
const ns = options.namespace ?? deriveNamespace(
|
|
125
|
-
const compileResult = (0, compile_1.compile)(source, {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
92
|
+
const source = fs.readFileSync(entryFile, 'utf-8');
|
|
93
|
+
const ns = options.namespace ?? deriveNamespace(entryFile);
|
|
94
|
+
const compileResult = (0, compile_1.compile)(source, {
|
|
95
|
+
namespace: ns,
|
|
96
|
+
filePath: entryFile,
|
|
97
|
+
generateSourceMap: options.generateSourceMap,
|
|
98
|
+
mcVersion: options.mcVersion,
|
|
99
|
+
lenient: options.lenient,
|
|
100
|
+
includeDirs: options.includeDirs,
|
|
101
|
+
});
|
|
102
|
+
const outputFiles = cloneFiles(compileResult.files);
|
|
103
|
+
const compiledFunctions = outputFiles
|
|
104
|
+
.filter(file => file.path.endsWith('.mcfunction'))
|
|
105
|
+
.map(file => file.path);
|
|
106
|
+
removeStaleOutputs(cachedEntry?.outputFiles ?? [], outputFiles, options.output);
|
|
107
|
+
for (const file of entryUnit) {
|
|
108
|
+
cache.update(file);
|
|
109
|
+
}
|
|
110
|
+
const entryRecord = cache.get(entryFile);
|
|
111
|
+
if (entryRecord) {
|
|
112
|
+
entryRecord.compiledFunctions = compiledFunctions;
|
|
113
|
+
entryRecord.outputFiles = outputFiles;
|
|
114
|
+
entryRecord.dependencies = [...entryUnit].sort();
|
|
133
115
|
}
|
|
134
|
-
|
|
135
|
-
writeBuildOutput(compileResult, options.output);
|
|
116
|
+
writeBuildOutput(outputFiles, options.output);
|
|
136
117
|
result.recompiled++;
|
|
137
|
-
result.results.set(
|
|
118
|
+
result.results.set(entryFile, compileResult);
|
|
119
|
+
result.rebuiltFiles.push(entryFile);
|
|
138
120
|
}
|
|
139
121
|
catch (err) {
|
|
140
|
-
result.errors.set(
|
|
122
|
+
result.errors.set(entryFile, err.message);
|
|
141
123
|
}
|
|
142
124
|
}
|
|
125
|
+
cache.save();
|
|
126
|
+
result.elapsedMs = Date.now() - start;
|
|
143
127
|
return result;
|
|
144
128
|
}
|
|
129
|
+
function discoverDependencyGraph(entries, depGraph) {
|
|
130
|
+
const visited = new Set();
|
|
131
|
+
const queue = [...entries];
|
|
132
|
+
while (queue.length > 0) {
|
|
133
|
+
const current = path.resolve(queue.shift());
|
|
134
|
+
if (visited.has(current))
|
|
135
|
+
continue;
|
|
136
|
+
visited.add(current);
|
|
137
|
+
try {
|
|
138
|
+
const source = fs.readFileSync(current, 'utf-8');
|
|
139
|
+
depGraph.addFile(current, source);
|
|
140
|
+
const imports = (0, deps_1.parseImports)(current, source);
|
|
141
|
+
for (const imported of imports) {
|
|
142
|
+
if (!visited.has(imported))
|
|
143
|
+
queue.push(imported);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
depGraph.removeFile(current);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return visited;
|
|
151
|
+
}
|
|
152
|
+
function cloneFiles(files) {
|
|
153
|
+
return files.map(file => ({ path: file.path, content: file.content }));
|
|
154
|
+
}
|
|
145
155
|
/** Write compile output files to the output directory. */
|
|
146
|
-
function writeBuildOutput(
|
|
156
|
+
function writeBuildOutput(files, output) {
|
|
147
157
|
fs.mkdirSync(output, { recursive: true });
|
|
148
|
-
for (const dataFile of
|
|
158
|
+
for (const dataFile of files) {
|
|
149
159
|
const filePath = path.join(output, dataFile.path);
|
|
150
160
|
const dir = path.dirname(filePath);
|
|
151
161
|
fs.mkdirSync(dir, { recursive: true });
|
|
152
162
|
fs.writeFileSync(filePath, dataFile.content);
|
|
153
163
|
}
|
|
154
164
|
}
|
|
165
|
+
function removeStaleOutputs(previousFiles, nextFiles, output) {
|
|
166
|
+
if (previousFiles.length === 0)
|
|
167
|
+
return;
|
|
168
|
+
const nextPaths = new Set(nextFiles.map(file => file.path));
|
|
169
|
+
for (const oldFile of previousFiles) {
|
|
170
|
+
if (nextPaths.has(oldFile.path))
|
|
171
|
+
continue;
|
|
172
|
+
const targetPath = path.join(output, oldFile.path);
|
|
173
|
+
if (fs.existsSync(targetPath))
|
|
174
|
+
fs.rmSync(targetPath, { force: true });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
155
177
|
function deriveNamespace(filePath) {
|
|
156
178
|
const basename = path.basename(filePath, path.extname(filePath));
|
|
157
179
|
return basename.toLowerCase().replace(/[^a-z0-9]/g, '_');
|
|
158
180
|
}
|
|
159
|
-
|
|
160
|
-
* Reset the in-memory compile cache. Useful for testing.
|
|
161
|
-
*/
|
|
162
|
-
function resetCompileCache() {
|
|
163
|
-
compiledCache.clear();
|
|
164
|
-
}
|
|
181
|
+
function resetCompileCache() { }
|
|
165
182
|
//# sourceMappingURL=incremental.js.map
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FileCache — content-hash-based compilation cache for incremental builds.
|
|
3
3
|
*
|
|
4
|
-
* Stores per-file content hashes and optional cached
|
|
5
|
-
* Persists to `.redscript-cache
|
|
4
|
+
* Stores per-file content hashes and optional cached output payloads.
|
|
5
|
+
* Persists to `.redscript-cache/cache.json`.
|
|
6
6
|
*/
|
|
7
7
|
import type { HIRModule } from '../hir/types';
|
|
8
|
+
import type { DatapackFile } from '../emit';
|
|
9
|
+
export interface CachedOutputFile extends DatapackFile {
|
|
10
|
+
}
|
|
8
11
|
export interface CacheEntry {
|
|
9
12
|
hash: string;
|
|
10
13
|
mtime: number;
|
|
11
14
|
hir?: HIRModule;
|
|
15
|
+
compiledFunctions?: string[];
|
|
16
|
+
outputFiles?: CachedOutputFile[];
|
|
17
|
+
dependencies?: string[];
|
|
12
18
|
}
|
|
13
19
|
export declare class FileCache {
|
|
14
20
|
private entries;
|
package/dist/src/cache/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* FileCache — content-hash-based compilation cache for incremental builds.
|
|
4
4
|
*
|
|
5
|
-
* Stores per-file content hashes and optional cached
|
|
6
|
-
* Persists to `.redscript-cache
|
|
5
|
+
* Stores per-file content hashes and optional cached output payloads.
|
|
6
|
+
* Persists to `.redscript-cache/cache.json`.
|
|
7
7
|
*/
|
|
8
8
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
9
|
if (k2 === undefined) k2 = k;
|
|
@@ -117,12 +117,18 @@ class FileCache {
|
|
|
117
117
|
save() {
|
|
118
118
|
fs.mkdirSync(this.cacheDir, { recursive: true });
|
|
119
119
|
const serialized = {
|
|
120
|
-
version:
|
|
120
|
+
version: 2,
|
|
121
121
|
entries: {},
|
|
122
122
|
};
|
|
123
123
|
for (const [filePath, entry] of this.entries) {
|
|
124
124
|
// Don't persist HIR — it contains non-serializable references
|
|
125
|
-
serialized.entries[filePath] = {
|
|
125
|
+
serialized.entries[filePath] = {
|
|
126
|
+
hash: entry.hash,
|
|
127
|
+
mtime: entry.mtime,
|
|
128
|
+
compiledFunctions: entry.compiledFunctions,
|
|
129
|
+
outputFiles: entry.outputFiles,
|
|
130
|
+
dependencies: entry.dependencies,
|
|
131
|
+
};
|
|
126
132
|
}
|
|
127
133
|
const cachePath = path.join(this.cacheDir, 'cache.json');
|
|
128
134
|
fs.writeFileSync(cachePath, JSON.stringify(serialized, null, 2));
|
|
@@ -132,10 +138,16 @@ class FileCache {
|
|
|
132
138
|
const cachePath = path.join(this.cacheDir, 'cache.json');
|
|
133
139
|
try {
|
|
134
140
|
const data = JSON.parse(fs.readFileSync(cachePath, 'utf-8'));
|
|
135
|
-
if (data.version !==
|
|
141
|
+
if (data.version !== 2)
|
|
136
142
|
return;
|
|
137
143
|
for (const [filePath, entry] of Object.entries(data.entries)) {
|
|
138
|
-
this.entries.set(filePath, {
|
|
144
|
+
this.entries.set(filePath, {
|
|
145
|
+
hash: entry.hash,
|
|
146
|
+
mtime: entry.mtime,
|
|
147
|
+
compiledFunctions: entry.compiledFunctions,
|
|
148
|
+
outputFiles: entry.outputFiles,
|
|
149
|
+
dependencies: entry.dependencies,
|
|
150
|
+
});
|
|
139
151
|
}
|
|
140
152
|
}
|
|
141
153
|
catch {
|