dsh-ptc-plus 0.3.2 → 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 +65 -78
- package/README.md +65 -78
- 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 +30596 -742
- 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 +5 -3
- package/docs/adr/0007-separate-worker-transport-from-session-semantics.md +1 -1
- 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 +3 -1
- package/docs/adr/0014-persist-cell-rewrite-policy.md +6 -2
- 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 +5 -3
- package/docs/adr/0020-optional-cordis-tools-in-ptc-mode.md +2 -2
- package/docs/adr/0021-separate-host-bootstrap-from-session-runtime.md +12 -0
- 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 +73 -21
- package/docs/binding-review-placement-design.md +200 -0
- package/docs/capability-projection.md +1 -1
- package/docs/client-ui.md +95 -19
- package/docs/durability-design.md +25 -10
- package/docs/evaluation.md +78 -6
- package/docs/installation.md +41 -6
- package/docs/publishing.md +5 -3
- package/docs/runtime-reference.md +72 -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 +369 -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 +240 -290
- 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 -677
- 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 +83 -27
- 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 +27 -2
- 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 +904 -120
- 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 -289
- package/internal/repl-memory-projection.js +81 -12
- package/internal/repl-observation-interest.js +70 -0
- package/internal/repl-rewrite-contract.js +6 -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 -52
- package/internal/runtime-contexts.js +82 -10
- package/internal/runtime-messages.js +111 -0
- package/internal/session-cell-executor.js +401 -87
- package/internal/session-journal-recovery.js +684 -0
- package/internal/session-journal-schema.js +106 -0
- package/internal/session-journal.js +184 -654
- package/internal/session-log-view.js +42 -9
- package/internal/session-runtime.js +256 -95
- package/internal/session-state.js +247 -71
- 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 +75 -7
- package/src/client-activity.js +88 -53
- 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,27 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
+
|
|
25
48
|
const DIAGNOSTIC_FIELDS = new Set([
|
|
26
49
|
'code', 'severity', 'phase', 'message', 'stateEffect', 'dispatchState',
|
|
27
50
|
'source', 'cause', 'help',
|
|
@@ -33,8 +56,6 @@ const SEVERITIES = new Set(['error', 'warning', 'note'])
|
|
|
33
56
|
const PHASES = new Set(['parse', 'preflight', 'execute', 'tool-dispatch', 'replay', 'recover'])
|
|
34
57
|
const STATE_EFFECTS = new Set(['unchanged', 'partially-applied', 'rolled-back', 'unknown'])
|
|
35
58
|
const DISPATCH_STATES = new Set(['not-dispatched', 'dispatched', 'completed', 'unknown'])
|
|
36
|
-
const REWRITE_FIELDS = new Set(['kind', 'description', 'source'])
|
|
37
|
-
const REWRITE_KINDS = new Set(['import', 'redeclaration', 'export'])
|
|
38
59
|
const REWRITE_POLICY_BY_KIND = Object.freeze({
|
|
39
60
|
import: 'autoRewriteImports',
|
|
40
61
|
export: 'autoStripExports',
|
|
@@ -42,21 +63,14 @@ const REWRITE_POLICY_BY_KIND = Object.freeze({
|
|
|
42
63
|
const MIXED_REDECLARATION = 'split a mixed top-level declaration while preserving native pattern initialization'
|
|
43
64
|
const FUNCTION_REDECLARATION = 'reassigned an existing top-level function declaration for REPL continuity'
|
|
44
65
|
const CLASS_REDECLARATION = 'reassigned an existing top-level class declaration for REPL continuity'
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const VALUE_BIGINT_FIELDS = new Set(['tag', 'value'])
|
|
54
|
-
const VALUE_REFERENCE_FIELDS = new Set(['tag', 'index'])
|
|
55
|
-
const MAX_VALUE_NODES = 100_000
|
|
56
|
-
const MAX_VALUE_EDGES = 1_000_000
|
|
57
|
-
const MAX_ARRAY_LENGTH = 1_000_000
|
|
58
|
-
const MAX_BIGINT_DIGITS = 100_000
|
|
59
|
-
const MAX_STRING_BYTES = 64 * 1024 * 1024
|
|
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
|
|
60
74
|
const textEncoder = new TextEncoder()
|
|
61
75
|
|
|
62
76
|
function isRecord(value) {
|
|
@@ -165,7 +179,7 @@ function isValidValueAtom(value, state) {
|
|
|
165
179
|
}
|
|
166
180
|
|
|
167
181
|
function isValidValueWire(value) {
|
|
168
|
-
if (!hasExactOrderedFields(value, VALUE_ENVELOPE_FIELDS) || value.codec !==
|
|
182
|
+
if (!hasExactOrderedFields(value, VALUE_ENVELOPE_FIELDS) || value.codec !== VALUE_CODEC
|
|
169
183
|
|| !Array.isArray(value.nodes) || value.nodes.length > MAX_VALUE_NODES) return false
|
|
170
184
|
const state = {
|
|
171
185
|
nodeCount: value.nodes.length,
|
|
@@ -223,9 +237,11 @@ function isValidBindingPolicy(value) {
|
|
|
223
237
|
&& [...BINDING_POLICY_FIELDS].every(key => typeof value[key] === 'boolean')
|
|
224
238
|
}
|
|
225
239
|
|
|
226
|
-
function isValidModuleSemantics(value) {
|
|
227
|
-
|
|
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)
|
|
228
243
|
&& DEFAULT_EXPORT_BINDINGS.has(value.defaultExportBinding)
|
|
244
|
+
&& (legacy || IMPORT_EXPRESSION_BOUNDARIES.has(value.importExpressionBoundary))
|
|
229
245
|
}
|
|
230
246
|
|
|
231
247
|
function isValidCall(value) {
|
|
@@ -268,16 +284,37 @@ function isReadableJournalUnchecked(value) {
|
|
|
268
284
|
if (!isRecord(value) || !JOURNAL_VERSIONS.has(value.version) || !JOURNAL_STATUSES.has(value.status)) {
|
|
269
285
|
return false
|
|
270
286
|
}
|
|
271
|
-
const predecessor = value.version
|
|
272
|
-
const fields = value.version === 1
|
|
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
|
|
273
296
|
const required = predecessor
|
|
274
297
|
? ['version', 'bindingMode', 'status', 'calls', 'operations', 'diagnostics']
|
|
275
298
|
: ['version', 'bindingPolicy', 'rewritePolicy', 'moduleSemantics', 'status', 'calls', 'operations', 'diagnostics']
|
|
276
|
-
if (value.version !== 1 && value.version
|
|
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
|
+
}
|
|
277
310
|
if (!hasClosedFields(value, fields, required)
|
|
278
311
|
|| (predecessor && !BINDING_MODES.has(value.bindingMode))
|
|
279
|
-
|| (value.version
|
|
280
|
-
|| (value.version
|
|
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)))
|
|
281
318
|
|| (value.version !== 1 && !isValidRewritePolicy(value.rewritePolicy))
|
|
282
319
|
|| !Array.isArray(value.calls) || !value.calls.every(isValidCall)
|
|
283
320
|
|| !Array.isArray(value.operations) || !value.operations.every(isValidOperation)
|
|
@@ -303,9 +340,7 @@ function isReadableJournal(value) {
|
|
|
303
340
|
}
|
|
304
341
|
}
|
|
305
342
|
|
|
306
|
-
//
|
|
307
|
-
// intentionally separate from the schema reader so future counters cannot
|
|
308
|
-
// accidentally treat an unknown status or partial arrays as activity.
|
|
343
|
+
// Unknown statuses and incomplete journal arrays cannot establish feature evidence.
|
|
309
344
|
function isCountableJournal(value) {
|
|
310
345
|
return isReadableJournal(value)
|
|
311
346
|
&& JOURNAL_STATUSES.has(value.status)
|
|
@@ -322,7 +357,7 @@ function isValidRewrites(value, journal) {
|
|
|
322
357
|
&& REWRITE_KINDS.has(rewrite.kind)
|
|
323
358
|
&& (rewrite.kind === 'redeclaration'
|
|
324
359
|
? (rewrite.description === FUNCTION_REDECLARATION || rewrite.description === CLASS_REDECLARATION)
|
|
325
|
-
? journal.version
|
|
360
|
+
? journal.version >= 4 && isValidBindingPolicy(journal.bindingPolicy)
|
|
326
361
|
&& journal.bindingPolicy.functionClassRedeclarations === true
|
|
327
362
|
: journal.rewritePolicy.autoSplitRedeclarations === true
|
|
328
363
|
: journal.rewritePolicy[REWRITE_POLICY_BY_KIND[rewrite.kind]] === true)
|