dsh-ptc-plus 0.3.1 → 0.4.1
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/README.en.md +66 -73
- package/README.md +66 -73
- package/assets/ptc-plus-bindings-en.png +0 -0
- package/assets/ptc-plus-bindings-zh.png +0 -0
- package/assets/ptc-plus-repair-en.png +0 -0
- package/assets/ptc-plus-repair-zh.png +0 -0
- package/assets/ptc-plus-repl-workspace-en.png +0 -0
- package/assets/ptc-plus-repl-workspace-zh.png +0 -0
- package/assets/ptc-plus-settings-en.png +0 -0
- package/assets/ptc-plus-settings-zh.png +0 -0
- package/client.js +30610 -722
- package/compiler-amaro.cjs +5 -0
- package/compiler-amaro.cjs.map +6 -0
- package/compiler-asset-124f80c1bba92ff5fe79cfec6e8ad518f476de4a42514cae3919538887f510e8.txt +1 -0
- package/compiler-assets.json +3 -0
- package/compiler-core.cjs +554 -0
- package/compiler-core.cjs.map +6 -0
- package/compiler-platform.cjs +2 -0
- package/compiler-platform.cjs.map +6 -0
- package/compiler-typescript.cjs +388 -0
- package/compiler-typescript.cjs.map +6 -0
- package/docs/README.md +6 -0
- package/docs/adr/0004-declare-program-bindings-at-the-host.md +1 -1
- package/docs/adr/0006-rewrite-module-syntax-with-an-ast.md +6 -4
- package/docs/adr/0007-separate-worker-transport-from-session-semantics.md +15 -3
- package/docs/adr/0009-bound-expensive-acceptance-default.md +2 -0
- package/docs/adr/0010-session-log-derived-recovery-tips.md +59 -5
- package/docs/adr/0011-isolate-the-local-recovery-tip-provider.md +1 -1
- package/docs/adr/0012-preserve-mixed-destructuring-initialization.md +3 -1
- package/docs/adr/0013-isolate-repl-redeclaration-convenience.md +9 -3
- package/docs/adr/0014-persist-cell-rewrite-policy.md +11 -5
- package/docs/adr/0015-preserve-source-positions-through-rewrites.md +1 -1
- package/docs/adr/0016-archive-resolved-review-findings.md +1 -1
- package/docs/adr/0017-track-the-latest-dsh-public-surface.md +49 -0
- package/docs/adr/0018-use-versioned-fixture-for-ab-benchmark.md +3 -3
- package/docs/adr/0019-plugin-settings-and-kill-switch.md +8 -6
- package/docs/adr/0020-optional-cordis-tools-in-ptc-mode.md +2 -2
- package/docs/adr/0021-separate-host-bootstrap-from-session-runtime.md +17 -3
- package/docs/adr/0023-global-user-bindings.md +104 -0
- package/docs/adr/0024-repl-console-observation.md +33 -0
- package/docs/adr/0025-use-versioned-logical-binding-identities.md +119 -0
- package/docs/adr/0026-persist-the-delivery-verdict-against-the-verified-candidate.md +21 -0
- package/docs/adr/0027-run-the-session-kernel-in-a-killable-helper-process.md +37 -0
- package/docs/adr/0028-attach-to-the-host-ptc-execution-seam.md +103 -0
- package/docs/adr/0029-keep-plugin-unavailability-out-of-the-host-agent-lifecycle.md +27 -0
- package/docs/adr/0030-serve-both-typert-codec-generations-from-one-codec.md +27 -0
- package/docs/architecture.md +82 -22
- package/docs/binding-review-placement-design.md +200 -0
- package/docs/capability-projection.md +1 -1
- package/docs/client-ui.md +96 -20
- package/docs/durability-design.md +61 -24
- package/docs/evaluation.md +78 -6
- package/docs/installation.md +41 -6
- package/docs/program-data-plane.md +6 -0
- package/docs/publishing.md +5 -3
- package/docs/runtime-reference.md +79 -25
- package/docs/semantic-validation.md +29 -0
- package/docs/stateful-binding-updates-proposal.md +755 -0
- package/docs/user-bindings.en.md +64 -0
- package/docs/user-bindings.md +64 -0
- package/docs/value-wire.md +3 -3
- package/docs/verification.md +57 -0
- package/index.js +374 -92
- package/internal/ast-traversal.js +5 -2
- package/internal/binding-descriptors.js +1 -0
- package/internal/binding-pattern-traversal.js +25 -0
- package/internal/binding-pattern.js +26 -29
- package/internal/binding-source-analysis.js +391 -0
- package/internal/binding-update-policy.js +66 -0
- package/internal/bounded-worker-round.js +56 -0
- package/internal/callable-definition-environment.js +42 -0
- package/internal/callable-source-catalog.js +129 -0
- package/internal/callable-source-encoding.js +47 -0
- package/internal/callable-source-facts.js +459 -0
- package/internal/callable-source-format.js +2 -0
- package/internal/callable-source-lowering.js +123 -0
- package/internal/cell-analysis-contract.js +25 -0
- package/internal/cell-analysis.js +252 -242
- package/internal/cell-completion.js +15 -0
- package/internal/cell-error.js +7 -0
- package/internal/cell-parser.js +66 -0
- package/internal/cell-rewriter.js +3 -553
- package/internal/commonjs-export-evidence.js +63 -0
- package/internal/commonjs-source-evidence.js +72 -0
- package/internal/compiler-amaro.cjs +2 -0
- package/internal/compiler-compression.js +12 -0
- package/internal/compiler-data.js +58 -0
- package/internal/compiler-descriptors.js +54 -0
- package/internal/compiler-dynamic-cache.js +48 -0
- package/internal/compiler-entry.js +35 -0
- package/internal/compiler-generated-names.js +17 -0
- package/internal/compiler-intrinsics.js +84 -0
- package/internal/compiler-module-links.js +34 -0
- package/internal/compiler-operations.js +61 -0
- package/internal/compiler-platform-factory.js +84 -0
- package/internal/compiler-platform.js +136 -0
- package/internal/compiler-record-roles.js +53 -0
- package/internal/compiler-region-output.js +259 -0
- package/internal/compiler-resource-lowering.js +103 -0
- package/internal/compiler-scope-facts.js +115 -0
- package/internal/compiler-service.js +109 -0
- package/internal/compiler-source-cache.js +32 -0
- package/internal/compiler-source-pieces.js +93 -0
- package/internal/compiler-source-regions.js +132 -0
- package/internal/compiler-storage-source.js +54 -0
- package/internal/compiler-text.js +15 -0
- package/internal/compiler-typescript.cjs +2 -0
- package/internal/config-spec.js +91 -25
- package/internal/cordis-tools-owner.js +130 -21
- package/internal/diagnostic.js +27 -1
- package/internal/direct-surface-owner.js +76 -23
- package/internal/dynamic-binding-evidence.js +16 -0
- package/internal/dynamic-environment-compiler.js +779 -0
- package/internal/dynamic-environment-integration.js +87 -0
- package/internal/dynamic-environment-runtime.js +362 -0
- package/internal/dynamic-native-calls.js +150 -0
- package/internal/dynamic-native-runtime.js +248 -0
- package/internal/dynamic-scope-analysis.js +90 -0
- package/internal/edit-transport-owner.js +28 -3
- package/internal/execution-seam-compat.js +193 -0
- package/internal/failure-reporting.js +118 -18
- package/internal/host-rpc.js +66 -0
- package/internal/isolated-worker.js +548 -0
- package/internal/kernel-child.js +139 -0
- package/internal/kernel-worker.js +911 -116
- package/internal/language-semantics.js +14 -0
- package/internal/legacy-binding-catalog.js +48 -0
- package/internal/legacy-cell-analysis.js +600 -0
- package/internal/legacy-cell-parser.js +50 -0
- package/internal/legacy-cell-rewriter.js +631 -0
- package/internal/legacy-repl-convenience.js +291 -0
- package/internal/managed-module-operations.js +170 -0
- package/internal/module-compilation.js +321 -0
- package/internal/module-runtime-platform.js +19 -0
- package/internal/module-transform-contract.js +12 -0
- package/internal/native-await-declarations.js +68 -0
- package/internal/native-root-compilation.js +54 -0
- package/internal/native-root-dynamic.js +67 -0
- package/internal/recovery-tips.js +27 -15
- package/internal/rejected-cell-editor.js +13 -8
- package/internal/repl-convenience.js +2 -201
- package/internal/repl-memory-projection.js +81 -12
- package/internal/repl-observation-interest.js +70 -0
- package/internal/repl-rewrite-contract.js +21 -0
- package/internal/repl-scope-normalizer.js +2091 -0
- package/internal/repl-value-observer.js +114 -0
- package/internal/rpc-contract.js +52 -0
- package/internal/runtime-bridge-owner.js +172 -28
- package/internal/runtime-config.js +48 -51
- package/internal/runtime-contexts.js +82 -10
- package/internal/runtime-messages.js +111 -0
- package/internal/session-cell-executor.js +455 -91
- package/internal/session-journal-recovery.js +684 -0
- package/internal/session-journal-schema.js +106 -0
- package/internal/session-journal.js +237 -440
- package/internal/session-log-view.js +42 -9
- package/internal/session-runtime.js +325 -80
- package/internal/session-state.js +249 -40
- package/internal/source-position-map.js +211 -71
- package/internal/stateful-module-compiler.js +154 -0
- package/internal/stateful-module-runtime.js +303 -0
- package/internal/stateful-root-compiler.js +598 -0
- package/internal/stateful-root-runtime.js +340 -0
- package/internal/typert-codec-compat.js +28 -0
- package/internal/typescript-transform.js +29 -0
- package/internal/user-binding-authoring.js +70 -0
- package/internal/user-binding-console-worker.js +184 -0
- package/internal/user-binding-console.js +148 -0
- package/internal/user-binding-draft-projection.js +335 -0
- package/internal/user-binding-model-context.js +31 -0
- package/internal/user-binding-runner.js +56 -0
- package/internal/user-bindings-owner.js +1065 -0
- package/internal/user-bindings-store.js +293 -0
- package/internal/user-bindings.js +353 -0
- package/internal/value-wire-schema.js +28 -0
- package/internal/value-wire.js +29 -20
- package/internal/worker-client.js +57 -67
- package/internal/worker-environment.js +45 -0
- package/internal/worker-output-relay.js +29 -0
- package/internal/worker-shutdown.js +14 -0
- package/package.json +81 -11
- package/src/client-activity.js +109 -45
- package/src/client-authoring-view.js +580 -0
- package/src/client-binding-review.js +230 -0
- package/src/client-bindings-data.js +29 -0
- package/src/client-catalog.js +127 -0
- package/src/client-code-editor.js +84 -0
- package/src/client-console.js +112 -0
- package/src/client-copy.js +370 -0
- package/src/client-feature-gates.js +62 -0
- package/src/client-host-compat.js +150 -0
- package/src/client-indicator-view.js +267 -0
- package/src/client-repl-view.js +292 -0
- package/src/client-rpc.js +20 -0
- package/src/client-settings-view.js +221 -0
- package/src/client-styles.js +106 -0
- package/src/client-tool-view.js +108 -0
- package/src/client-transport.js +159 -0
- package/src/client-workbench.js +521 -0
- package/src/client.js +233 -615
package/src/client-activity.js
CHANGED
|
@@ -1,20 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import {
|
|
2
|
+
JOURNAL_VERSIONS,
|
|
3
|
+
STATUSES as JOURNAL_STATUSES,
|
|
4
|
+
BINDING_MODES,
|
|
5
|
+
JOURNAL_FIELDS,
|
|
6
|
+
PER_NAME_JOURNAL_FIELDS,
|
|
7
|
+
LANGUAGE_SEMANTICS_JOURNAL_VERSION,
|
|
8
|
+
WHOLE_ENTRY_JOURNAL_FIELDS,
|
|
9
|
+
PER_NAME_USER_BINDINGS_JOURNAL_VERSION,
|
|
10
|
+
normalizeJournalUserBindingNames,
|
|
11
|
+
FINGERPRINT_REUSE_JOURNAL_FIELDS,
|
|
12
|
+
RELATIONLESS_JOURNAL_FIELDS,
|
|
13
|
+
PREDECESSOR_JOURNAL_FIELDS,
|
|
14
|
+
LEGACY_JOURNAL_FIELDS,
|
|
15
|
+
BINDING_POLICY_FIELDS,
|
|
16
|
+
REWRITE_POLICY_FIELDS,
|
|
17
|
+
MODULE_SEMANTICS_FIELDS,
|
|
18
|
+
LEGACY_MODULE_SEMANTICS_FIELDS,
|
|
19
|
+
VERSIONED_BINDING_REUSE_JOURNAL_VERSION,
|
|
20
|
+
IMPORT_EXPRESSION_BOUNDARIES,
|
|
21
|
+
DEFAULT_EXPORT_BINDINGS,
|
|
22
|
+
CALL_SUCCESS_FIELDS,
|
|
23
|
+
CALL_ERROR_FIELDS,
|
|
24
|
+
OPERATION_FIELDS,
|
|
25
|
+
RETURN_FIELDS,
|
|
26
|
+
THROW_FIELDS,
|
|
27
|
+
ERROR_FIELDS,
|
|
28
|
+
EDIT_TARGET_FIELDS,
|
|
29
|
+
DERIVED_RUN_FIELDS,
|
|
30
|
+
RECOVERY_BOUNDARY_FIELDS,
|
|
31
|
+
REWRITE_FIELDS,
|
|
32
|
+
REWRITE_KINDS,
|
|
33
|
+
USER_BINDINGS_REUSE_POLICIES,
|
|
34
|
+
} from '../internal/session-journal-schema.js'
|
|
35
|
+
import { normalizeLanguageSemantics } from '../internal/language-semantics.js'
|
|
36
|
+
import {
|
|
37
|
+
VALUE_CODEC,
|
|
38
|
+
DEFAULT_VALUE_LIMITS,
|
|
39
|
+
VALUE_ENVELOPE_FIELDS,
|
|
40
|
+
VALUE_OBJECT_FIELDS,
|
|
41
|
+
VALUE_ARRAY_FIELDS,
|
|
42
|
+
VALUE_UNDEFINED_FIELDS,
|
|
43
|
+
VALUE_NUMBER_FIELDS,
|
|
44
|
+
VALUE_BIGINT_FIELDS,
|
|
45
|
+
VALUE_REFERENCE_FIELDS,
|
|
46
|
+
} from '../internal/value-wire-schema.js'
|
|
47
|
+
|
|
18
48
|
const DIAGNOSTIC_FIELDS = new Set([
|
|
19
49
|
'code', 'severity', 'phase', 'message', 'stateEffect', 'dispatchState',
|
|
20
50
|
'source', 'cause', 'help',
|
|
@@ -26,28 +56,21 @@ const SEVERITIES = new Set(['error', 'warning', 'note'])
|
|
|
26
56
|
const PHASES = new Set(['parse', 'preflight', 'execute', 'tool-dispatch', 'replay', 'recover'])
|
|
27
57
|
const STATE_EFFECTS = new Set(['unchanged', 'partially-applied', 'rolled-back', 'unknown'])
|
|
28
58
|
const DISPATCH_STATES = new Set(['not-dispatched', 'dispatched', 'completed', 'unknown'])
|
|
29
|
-
const REWRITE_FIELDS = new Set(['kind', 'description', 'source'])
|
|
30
|
-
const REWRITE_KINDS = new Set(['import', 'redeclaration', 'export'])
|
|
31
59
|
const REWRITE_POLICY_BY_KIND = Object.freeze({
|
|
32
60
|
import: 'autoRewriteImports',
|
|
33
|
-
redeclaration: 'autoSplitRedeclarations',
|
|
34
61
|
export: 'autoStripExports',
|
|
35
62
|
})
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const MAX_VALUE_EDGES = 1_000_000
|
|
48
|
-
const MAX_ARRAY_LENGTH = 1_000_000
|
|
49
|
-
const MAX_BIGINT_DIGITS = 100_000
|
|
50
|
-
const MAX_STRING_BYTES = 64 * 1024 * 1024
|
|
63
|
+
const MIXED_REDECLARATION = 'split a mixed top-level declaration while preserving native pattern initialization'
|
|
64
|
+
const FUNCTION_REDECLARATION = 'reassigned an existing top-level function declaration for REPL continuity'
|
|
65
|
+
const CLASS_REDECLARATION = 'reassigned an existing top-level class declaration for REPL continuity'
|
|
66
|
+
// Presentation validation stays bounded independently of configured runtime budgets.
|
|
67
|
+
const {
|
|
68
|
+
maxNodes: MAX_VALUE_NODES,
|
|
69
|
+
maxEdges: MAX_VALUE_EDGES,
|
|
70
|
+
maxArrayLength: MAX_ARRAY_LENGTH,
|
|
71
|
+
maxBigIntDigits: MAX_BIGINT_DIGITS,
|
|
72
|
+
maxStringBytes: MAX_STRING_BYTES,
|
|
73
|
+
} = DEFAULT_VALUE_LIMITS
|
|
51
74
|
const textEncoder = new TextEncoder()
|
|
52
75
|
|
|
53
76
|
function isRecord(value) {
|
|
@@ -156,7 +179,7 @@ function isValidValueAtom(value, state) {
|
|
|
156
179
|
}
|
|
157
180
|
|
|
158
181
|
function isValidValueWire(value) {
|
|
159
|
-
if (!hasExactOrderedFields(value, VALUE_ENVELOPE_FIELDS) || value.codec !==
|
|
182
|
+
if (!hasExactOrderedFields(value, VALUE_ENVELOPE_FIELDS) || value.codec !== VALUE_CODEC
|
|
160
183
|
|| !Array.isArray(value.nodes) || value.nodes.length > MAX_VALUE_NODES) return false
|
|
161
184
|
const state = {
|
|
162
185
|
nodeCount: value.nodes.length,
|
|
@@ -209,6 +232,18 @@ function isValidRewritePolicy(value) {
|
|
|
209
232
|
&& [...REWRITE_POLICY_FIELDS].every(key => typeof value[key] === 'boolean')
|
|
210
233
|
}
|
|
211
234
|
|
|
235
|
+
function isValidBindingPolicy(value) {
|
|
236
|
+
return hasExactFields(value, BINDING_POLICY_FIELDS)
|
|
237
|
+
&& [...BINDING_POLICY_FIELDS].every(key => typeof value[key] === 'boolean')
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
function isValidModuleSemantics(value, version) {
|
|
241
|
+
const legacy = version <= VERSIONED_BINDING_REUSE_JOURNAL_VERSION
|
|
242
|
+
return hasExactFields(value, legacy ? LEGACY_MODULE_SEMANTICS_FIELDS : MODULE_SEMANTICS_FIELDS)
|
|
243
|
+
&& DEFAULT_EXPORT_BINDINGS.has(value.defaultExportBinding)
|
|
244
|
+
&& (legacy || IMPORT_EXPRESSION_BOUNDARIES.has(value.importExpressionBoundary))
|
|
245
|
+
}
|
|
246
|
+
|
|
212
247
|
function isValidCall(value) {
|
|
213
248
|
if (!isRecord(value) || (value.ok !== true && value.ok !== false)) return false
|
|
214
249
|
const fields = value.ok ? CALL_SUCCESS_FIELDS : CALL_ERROR_FIELDS
|
|
@@ -249,10 +284,37 @@ function isReadableJournalUnchecked(value) {
|
|
|
249
284
|
if (!isRecord(value) || !JOURNAL_VERSIONS.has(value.version) || !JOURNAL_STATUSES.has(value.status)) {
|
|
250
285
|
return false
|
|
251
286
|
}
|
|
252
|
-
const
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
|
|
287
|
+
const predecessor = value.version < 4
|
|
288
|
+
const fields = value.version === 1
|
|
289
|
+
? LEGACY_JOURNAL_FIELDS
|
|
290
|
+
: predecessor
|
|
291
|
+
? PREDECESSOR_JOURNAL_FIELDS
|
|
292
|
+
: value.version === 4 ? RELATIONLESS_JOURNAL_FIELDS
|
|
293
|
+
: value.version === 5 ? FINGERPRINT_REUSE_JOURNAL_FIELDS
|
|
294
|
+
: value.version < PER_NAME_USER_BINDINGS_JOURNAL_VERSION ? WHOLE_ENTRY_JOURNAL_FIELDS
|
|
295
|
+
: value.version < LANGUAGE_SEMANTICS_JOURNAL_VERSION ? PER_NAME_JOURNAL_FIELDS : JOURNAL_FIELDS
|
|
296
|
+
const required = predecessor
|
|
297
|
+
? ['version', 'bindingMode', 'status', 'calls', 'operations', 'diagnostics']
|
|
298
|
+
: ['version', 'bindingPolicy', 'rewritePolicy', 'moduleSemantics', 'status', 'calls', 'operations', 'diagnostics']
|
|
299
|
+
if (value.version !== 1 && value.version < 4) required.push('rewritePolicy')
|
|
300
|
+
if (value.version >= 5) required.push('userBindingsFingerprint')
|
|
301
|
+
if (value.version >= VERSIONED_BINDING_REUSE_JOURNAL_VERSION) required.push('userBindingsReusePolicy')
|
|
302
|
+
if (value.version >= PER_NAME_USER_BINDINGS_JOURNAL_VERSION) {
|
|
303
|
+
required.push('userBindingsShadowPolicy', 'userBindingNames')
|
|
304
|
+
normalizeJournalUserBindingNames(value)
|
|
305
|
+
}
|
|
306
|
+
if (value.version >= LANGUAGE_SEMANTICS_JOURNAL_VERSION) {
|
|
307
|
+
required.push('languageSemantics')
|
|
308
|
+
normalizeLanguageSemantics(value.languageSemantics)
|
|
309
|
+
}
|
|
310
|
+
if (!hasClosedFields(value, fields, required)
|
|
311
|
+
|| (predecessor && !BINDING_MODES.has(value.bindingMode))
|
|
312
|
+
|| (value.version >= 4 && !isValidBindingPolicy(value.bindingPolicy))
|
|
313
|
+
|| (value.version >= 4 && !isValidModuleSemantics(value.moduleSemantics, value.version))
|
|
314
|
+
|| (value.version >= VERSIONED_BINDING_REUSE_JOURNAL_VERSION && !USER_BINDINGS_REUSE_POLICIES.has(value.userBindingsReusePolicy))
|
|
315
|
+
|| (value.version >= 5 && value.userBindingsFingerprint !== null
|
|
316
|
+
&& (typeof value.userBindingsFingerprint !== 'string'
|
|
317
|
+
|| !/^[a-f0-9]{64}$/.test(value.userBindingsFingerprint)))
|
|
256
318
|
|| (value.version !== 1 && !isValidRewritePolicy(value.rewritePolicy))
|
|
257
319
|
|| !Array.isArray(value.calls) || !value.calls.every(isValidCall)
|
|
258
320
|
|| !Array.isArray(value.operations) || !value.operations.every(isValidOperation)
|
|
@@ -278,9 +340,7 @@ function isReadableJournal(value) {
|
|
|
278
340
|
}
|
|
279
341
|
}
|
|
280
342
|
|
|
281
|
-
//
|
|
282
|
-
// intentionally separate from the schema reader so future counters cannot
|
|
283
|
-
// accidentally treat an unknown status or partial arrays as activity.
|
|
343
|
+
// Unknown statuses and incomplete journal arrays cannot establish feature evidence.
|
|
284
344
|
function isCountableJournal(value) {
|
|
285
345
|
return isReadableJournal(value)
|
|
286
346
|
&& JOURNAL_STATUSES.has(value.status)
|
|
@@ -295,7 +355,12 @@ function isValidRewrites(value, journal) {
|
|
|
295
355
|
&& Array.isArray(value) && value.every(rewrite => (
|
|
296
356
|
hasClosedFields(rewrite, REWRITE_FIELDS, ['kind', 'description'])
|
|
297
357
|
&& REWRITE_KINDS.has(rewrite.kind)
|
|
298
|
-
&&
|
|
358
|
+
&& (rewrite.kind === 'redeclaration'
|
|
359
|
+
? (rewrite.description === FUNCTION_REDECLARATION || rewrite.description === CLASS_REDECLARATION)
|
|
360
|
+
? journal.version >= 4 && isValidBindingPolicy(journal.bindingPolicy)
|
|
361
|
+
&& journal.bindingPolicy.functionClassRedeclarations === true
|
|
362
|
+
: journal.rewritePolicy.autoSplitRedeclarations === true
|
|
363
|
+
: journal.rewritePolicy[REWRITE_POLICY_BY_KIND[rewrite.kind]] === true)
|
|
299
364
|
&& typeof rewrite.description === 'string' && rewrite.description.length > 0
|
|
300
365
|
&& (rewrite.source === undefined || typeof rewrite.source === 'string')
|
|
301
366
|
))
|
|
@@ -377,7 +442,6 @@ function resultText(block) {
|
|
|
377
442
|
}
|
|
378
443
|
}
|
|
379
444
|
|
|
380
|
-
const MIXED_REDECLARATION = 'split a mixed top-level declaration while preserving native pattern initialization'
|
|
381
445
|
const GENERATED_RUN_CODE_DESCRIPTION_KEY = 'dshPtcPlusRunCodeDescription'
|
|
382
446
|
|
|
383
447
|
function rewriteFeature(rewrites, predicate, key) {
|