Skip to content

Remove stale call dependency descriptor gate - #3032

Merged
rogeralsing merged 1 commit into
mainfrom
codex/unified-bytecode-loop-72-remove-call-descriptor
Jun 1, 2026
Merged

Remove stale call dependency descriptor gate#3032
rogeralsing merged 1 commit into
mainfrom
codex/unified-bytecode-loop-72-remove-call-descriptor

Conversation

@rogeralsing

Copy link
Copy Markdown
Contributor

Summary

  • Remove the unused activation descriptor HasCallDependency gate.
  • Keep plan-scan CallDependency declines for direct eval and unsupported call shapes intact.
  • Update the decline contract and activation-dependency tests so the ledger no longer contains a synthetic call blocker.

Verification

  • rtk dotnet test tests/Asynkron.JsEngine.Tests -c Release --filter 'FullyQualifiedNameUnifiedBytecodeProductionEligibilityTests.Evaluate_ActivationDependencies_DeclineBeforeCompile|FullyQualifiedNameUnifiedBytecodeProductionEligibilityTests.Evaluate_PropertyReadAdjacentFamilies_DeclineWithExplicitCodes|FullyQualifiedName~ExpressionProgramCoverageMapTests.UnifiedBytecodeExpansionContract_ListsRequiredHeadingsAndCurrentEnums'
  • rtk dotnet test tests/Asynkron.JsEngine.Tests -c Release --filter 'FullyQualifiedNameUnifiedBytecodeProductionEligibilityTests|FullyQualifiedNameUnifiedBytecodeProductionInvocationTests|FullyQualifiedNameUnifiedBytecodeProductionSpreadCallTests|FullyQualifiedNameUnifiedBytecodeProductionConstructCallTests|FullyQualifiedNameExpressionProgramLoweringTests|FullyQualifiedNameExpressionProgramCoverageMapTests|FullyQualifiedName~AstFreeExecutionAssertionTests'
  • rtk dotnet build src/Asynkron.JsEngine/Asynkron.JsEngine.csproj -c Release
  • rtk rg 'EvaluateExpression(|ProfileEvaluateExpression(' src/Asynkron.JsEngine/Ast/TypedAstEvaluator.ExecutionPlanRunner*
  • rtk git diff --check

Copilot AI review requested due to automatic review settings June 1, 2026 23:33
@rogeralsing
rogeralsing merged commit 8fc2982 into main Jun 1, 2026
@rogeralsing
rogeralsing deleted the codex/unified-bytecode-loop-72-remove-call-descriptor branch June 1, 2026 23:33

Copilot AI left a comment

Copy link
Copy Markdown

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 removes the unused activation-descriptor gate (HasCallDependency) from production unified-bytecode eligibility, keeping call-related declines owned by the plan scan (including direct eval and unsupported call shapes). It updates affected tests, invoker activation-descriptor construction, and the decline-contract documentation to reflect the new contract (no synthetic “descriptor-level call blocker” entry).

Changes:

  • Removed HasCallDependency from UnifiedBytecodeProductionActivationDescriptor and eliminated the corresponding activation-level decline.
  • Updated sync/async invokers and eligibility tests to stop emitting/asserting the removed descriptor gate.
  • Adjusted the unified-bytecode expansion contract documentation to remove the descriptor-level call blocker from the ledger.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/Asynkron.JsEngine.Tests/UnifiedBytecodeProductionEligibilityTests.cs Updates activation-descriptor decline tests to remove the CallDependency descriptor gate case.
src/Asynkron.JsEngine/Execution/UnifiedBytecode/UnifiedBytecodeProductionEligibility.cs Removes HasCallDependency from the activation descriptor and deletes its activation-level decline path.
src/Asynkron.JsEngine/Ast/TypedAstEvaluator.SyncFunctionInvoker.cs Stops populating the removed activation-descriptor field and updates related explanatory comments.
src/Asynkron.JsEngine/Ast/TypedAstEvaluator.AsyncFunctionInvoker.cs Stops populating the removed activation-descriptor field for resumable eligibility checks.
docs/unified-bytecode-expansion-contract.md Updates the decline ledger entry for CallDependency to no longer describe a descriptor-level call blocker.

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

| `ArrowLexicalThisDependency` | Activation descriptor gate for arrow lexical `this` / `new.target` ownership before ordinary sync routing | Existing arrow invocation route | Arrow route lane | `rtk dotnet test tests/Asynkron.JsEngine.Tests --filter "FullyQualifiedName~UnifiedBytecodeProductionEligibilityTests&FullyQualifiedName~Evaluate_OrdinarySyncActivationDescriptorBlockers_DeclineBeforeCompile"` |
| `ClassConstructorActivation` | Activation descriptor gate for class constructor activation outside the admitted simple base constructor route and explicit derived-constructor `super(...)` route with post-super `this` body reads/writes | Constructor route | Constructor boundary lane | `rtk dotnet test tests/Asynkron.JsEngine.Tests --filter "FullyQualifiedName~UnifiedBytecodeProductionConstructCallTests&FullyQualifiedName~Constructor"` |
| `CallDependency` | Direct eval outside the one-argument non-spread eval-identifier boundary, out-of-boundary call-target preparation, complex call arguments excluding admitted simple/binary template-literal substitutions, simple/binary computed object keys, and zero-argument activation-resolved identifier-call computed object keys, and descriptor-level non-parameter callee calls | Existing sync IR call route | Wider call invocation lane | `rtk dotnet test tests/Asynkron.JsEngine.Tests --filter "FullyQualifiedName~UnifiedBytecodeProductionEligibilityTests&FullyQualifiedName~Evaluate_ActivationDependencies_DeclineBeforeCompile"` |
| `CallDependency` | Direct eval outside the one-argument non-spread eval-identifier boundary, out-of-boundary call-target preparation, and complex call arguments excluding admitted simple/binary template-literal substitutions, simple/binary computed object keys, and zero-argument activation-resolved identifier-call computed object keys | Existing sync IR call route | Wider call invocation lane | `rtk dotnet test tests/Asynkron.JsEngine.Tests --filter "FullyQualifiedName~UnifiedBytecodeProductionEligibilityTests"` |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants