mirror of
https://github.com/morluto/rea
synced 2026-10-26 14:25:49 -04:00
fix(javascript): preserve effective child-process stdio options (#4336)
* fix(javascript): preserve effective child-process stdio options * fix(javascript): retain proven callbacks and primitive stdio keys * fix(javascript): preserve argv shapes and nullish spreads * fix(javascript): bound callable proofs and retain exposed binding uncertainty * test(javascript): keep callback acceptance within transport budget * test(javascript): inspect application coverage for callback proof limits * fix(javascript): keep spread command argument slots uncertain * fix(javascript): bound mapped argument content proofs * fix(javascript): distinguish erased declarations from runtime shadows * fix(javascript): prove runtime module context before binding isolation * fix(javascript): share erased declaration and opaque scope proofs * fix(javascript): keep lowered enum scopes opaque * fix(javascript): narrow stdio proofs and consolidate regressions * perf(javascript): reuse lexical references for child shapes * fix(javascript): retain CommonJS child argument context * fix(javascript): keep Annex B affected child arguments unknown * fix(javascript): recognize value import-equals runtime modules * fix(javascript): retain exact stdio through module and primitive syntax * fix(javascript): bound inline spread property resolution * fix(javascript): distinguish copied methods from getters
This commit is contained in:
@@ -1,5 +1,20 @@
|
||||
import * as t from "@babel/types";
|
||||
|
||||
/** Declaration syntax that establishes no runtime value, regardless of export form. */
|
||||
export const isErasedJavaScriptDeclaration = (node: t.Node): boolean =>
|
||||
t.isTSInterfaceDeclaration(node) ||
|
||||
t.isTSTypeAliasDeclaration(node) ||
|
||||
t.isTSDeclareFunction(node) ||
|
||||
((t.isVariableDeclaration(node) ||
|
||||
t.isClassDeclaration(node) ||
|
||||
t.isTSEnumDeclaration(node) ||
|
||||
t.isTSModuleDeclaration(node)) &&
|
||||
node.declare === true);
|
||||
|
||||
/** Namespace/enum lowering introduces runtime scopes absent from this source index. */
|
||||
export const isUnmodeledJavaScriptRuntimeScope = (node: t.Node): boolean =>
|
||||
t.isTSModuleDeclaration(node) || t.isTSEnumDeclaration(node);
|
||||
|
||||
/** Whether TypeScript explicitly erases this entire import declaration. */
|
||||
export const isTypeOnlyImportDeclaration = (
|
||||
node: t.ImportDeclaration,
|
||||
|
||||
Reference in New Issue
Block a user