marko 6.0.94 → 6.0.96
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/dist/translator/index.js
CHANGED
|
@@ -4207,7 +4207,7 @@ function replaceAssignedNode(node) {
|
|
|
4207
4207
|
return getBuildAssignment(extra)?.(
|
|
4208
4208
|
extra.section,
|
|
4209
4209
|
bindingUtil.has(
|
|
4210
|
-
extra.
|
|
4210
|
+
extra.assignmentFunction.referencedBindingsInFunction,
|
|
4211
4211
|
extra.assignment
|
|
4212
4212
|
) ? node : node.operator === "=" ? node.right : import_compiler22.types.binaryExpression(
|
|
4213
4213
|
node.operator.slice(
|
|
@@ -4237,7 +4237,7 @@ function replaceAssignedNode(node) {
|
|
|
4237
4237
|
);
|
|
4238
4238
|
if (builtAssignment) {
|
|
4239
4239
|
if (!bindingUtil.has(
|
|
4240
|
-
extra.
|
|
4240
|
+
extra.assignmentFunction.referencedBindingsInFunction,
|
|
4241
4241
|
extra.assignment
|
|
4242
4242
|
)) {
|
|
4243
4243
|
id.name = uid;
|
|
@@ -7967,7 +7967,12 @@ function trackReferencesForBinding(babelBinding, binding) {
|
|
|
7967
7967
|
const { referencePaths, constantViolations } = babelBinding;
|
|
7968
7968
|
for (const ref of referencePaths) {
|
|
7969
7969
|
const refSection = getOrCreateSection(ref);
|
|
7970
|
-
|
|
7970
|
+
const markoRoot = getMarkoRoot(ref);
|
|
7971
|
+
if (markoRoot?.type === "MarkoAttribute" && markoRoot.parentPath === babelBinding.path) {
|
|
7972
|
+
throw ref.buildCodeFrameError(
|
|
7973
|
+
`Tag variable circular references are not supported.`
|
|
7974
|
+
);
|
|
7975
|
+
} else if (isReferenceHoisted(babelBinding.path, ref)) {
|
|
7971
7976
|
trackHoistedReference(ref, binding);
|
|
7972
7977
|
} else if (binding.type !== 4 /* local */ || refSection !== binding.section) {
|
|
7973
7978
|
trackReference(ref, binding);
|
|
@@ -7992,12 +7997,24 @@ function trackReferencesForBinding(babelBinding, binding) {
|
|
|
7992
7997
|
}
|
|
7993
7998
|
function trackAssignment(assignment, binding) {
|
|
7994
7999
|
const fnRoot = getFnRoot(assignment);
|
|
7995
|
-
const fnExtra = fnRoot && (fnRoot.node.extra ??= {});
|
|
7996
8000
|
const section = getOrCreateSection(assignment);
|
|
7997
8001
|
setReferencesScope(assignment);
|
|
7998
8002
|
forEachIdentifierPath(assignment, (id) => {
|
|
7999
8003
|
if (id.node.name === binding.name) {
|
|
8000
|
-
|
|
8004
|
+
if (!fnRoot) {
|
|
8005
|
+
throw id.buildCodeFrameError(
|
|
8006
|
+
`Assignments to a tag ${binding.type === 3 /* param */ ? "parameter" : "variable"} must be within a script or function.`
|
|
8007
|
+
);
|
|
8008
|
+
}
|
|
8009
|
+
const fnExtra = fnRoot && (fnRoot.node.extra ??= {});
|
|
8010
|
+
const idExtra = id.node.extra ??= {};
|
|
8011
|
+
idExtra.assignment = binding;
|
|
8012
|
+
idExtra.assignmentFunction = fnExtra;
|
|
8013
|
+
fnExtra.section = idExtra.section = section;
|
|
8014
|
+
binding.assignmentSections = sectionUtil.add(
|
|
8015
|
+
binding.assignmentSections,
|
|
8016
|
+
section
|
|
8017
|
+
);
|
|
8001
8018
|
if (binding.upstreamAlias && binding.property !== void 0) {
|
|
8002
8019
|
const changePropName = binding.property + "Change";
|
|
8003
8020
|
const changeBinding = binding.upstreamAlias.propertyAliases.get(changePropName) || createBinding(
|
|
@@ -8010,16 +8027,9 @@ function trackAssignment(assignment, binding) {
|
|
|
8010
8027
|
id.node.loc,
|
|
8011
8028
|
true
|
|
8012
8029
|
);
|
|
8013
|
-
|
|
8030
|
+
idExtra.assignmentTo = changeBinding;
|
|
8014
8031
|
addReadToExpression(id, changeBinding);
|
|
8015
8032
|
}
|
|
8016
|
-
binding.assignmentSections = sectionUtil.add(
|
|
8017
|
-
binding.assignmentSections,
|
|
8018
|
-
section
|
|
8019
|
-
);
|
|
8020
|
-
extra.assignment = binding;
|
|
8021
|
-
extra.section = section;
|
|
8022
|
-
extra.fnExtra = fnExtra;
|
|
8023
8033
|
}
|
|
8024
8034
|
});
|
|
8025
8035
|
}
|
|
@@ -8199,12 +8209,13 @@ function compareIntersections(a, b) {
|
|
|
8199
8209
|
function finalizeReferences() {
|
|
8200
8210
|
const bindings = getBindings();
|
|
8201
8211
|
const readsByExpression = getReadsByExpression();
|
|
8202
|
-
const
|
|
8212
|
+
const fnReadsByExpression = getFunctionReadsByExpression();
|
|
8203
8213
|
const mergedReferences = getMergedReferences();
|
|
8204
8214
|
if (mergedReferences.size) {
|
|
8205
8215
|
for (const [target, nodes] of mergedReferences) {
|
|
8206
8216
|
const targetExtra = target.extra;
|
|
8207
8217
|
let reads = readsByExpression.get(targetExtra);
|
|
8218
|
+
let exprFnReads = fnReadsByExpression.get(targetExtra);
|
|
8208
8219
|
let { isEffect } = targetExtra;
|
|
8209
8220
|
for (const node of nodes) {
|
|
8210
8221
|
const extra = node?.extra;
|
|
@@ -8212,11 +8223,24 @@ function finalizeReferences() {
|
|
|
8212
8223
|
setCanonicalExtra(extra, targetExtra);
|
|
8213
8224
|
if (isReferencedExtra(extra)) {
|
|
8214
8225
|
const additionalReads = readsByExpression.get(extra);
|
|
8226
|
+
const additionalExprFnReads = fnReadsByExpression.get(extra);
|
|
8215
8227
|
isEffect ||= extra.isEffect;
|
|
8216
8228
|
if (additionalReads) {
|
|
8217
8229
|
reads = concat(reads, additionalReads);
|
|
8218
8230
|
readsByExpression.delete(extra);
|
|
8219
8231
|
}
|
|
8232
|
+
if (additionalExprFnReads) {
|
|
8233
|
+
if (exprFnReads) {
|
|
8234
|
+
for (const [key, value] of additionalExprFnReads) {
|
|
8235
|
+
exprFnReads.set(key, value);
|
|
8236
|
+
}
|
|
8237
|
+
} else {
|
|
8238
|
+
fnReadsByExpression.set(
|
|
8239
|
+
targetExtra,
|
|
8240
|
+
exprFnReads = new Map(additionalExprFnReads)
|
|
8241
|
+
);
|
|
8242
|
+
}
|
|
8243
|
+
}
|
|
8220
8244
|
}
|
|
8221
8245
|
}
|
|
8222
8246
|
}
|
|
@@ -8227,14 +8251,25 @@ function finalizeReferences() {
|
|
|
8227
8251
|
const intersectionsBySection = /* @__PURE__ */ new Map();
|
|
8228
8252
|
for (const [expr, reads] of readsByExpression) {
|
|
8229
8253
|
if (isReferencedExtra(expr)) {
|
|
8230
|
-
expr.referencedBindings = resolveReferencedBindings(
|
|
8231
|
-
|
|
8232
|
-
|
|
8233
|
-
|
|
8234
|
-
|
|
8235
|
-
|
|
8236
|
-
|
|
8237
|
-
|
|
8254
|
+
const referencedBindings = expr.referencedBindings = resolveReferencedBindings(expr, reads, intersectionsBySection);
|
|
8255
|
+
if (referencedBindings) {
|
|
8256
|
+
forEach(referencedBindings, (binding) => {
|
|
8257
|
+
binding.downstreamExpressions.add(expr);
|
|
8258
|
+
});
|
|
8259
|
+
const exprFnReads = fnReadsByExpression.get(expr);
|
|
8260
|
+
if (exprFnReads) {
|
|
8261
|
+
for (const [fn, fnReads] of exprFnReads) {
|
|
8262
|
+
if (fn === expr) {
|
|
8263
|
+
expr.referencedBindingsInFunction = referencedBindings;
|
|
8264
|
+
} else {
|
|
8265
|
+
fn.referencedBindingsInFunction = resolveReferencedBindingsInFunction(
|
|
8266
|
+
referencedBindings,
|
|
8267
|
+
fnReads
|
|
8268
|
+
);
|
|
8269
|
+
}
|
|
8270
|
+
}
|
|
8271
|
+
}
|
|
8272
|
+
}
|
|
8238
8273
|
}
|
|
8239
8274
|
}
|
|
8240
8275
|
for (const binding of bindings) {
|
|
@@ -8404,20 +8439,29 @@ function finalizeReferences() {
|
|
|
8404
8439
|
});
|
|
8405
8440
|
});
|
|
8406
8441
|
finalizeFunctionRegistry();
|
|
8407
|
-
|
|
8408
|
-
|
|
8409
|
-
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
|
|
8414
|
-
|
|
8415
|
-
|
|
8416
|
-
|
|
8417
|
-
if (
|
|
8418
|
-
|
|
8442
|
+
const referencedExprs = /* @__PURE__ */ new Set();
|
|
8443
|
+
for (const binding of bindings) {
|
|
8444
|
+
for (const expr of binding.downstreamExpressions) {
|
|
8445
|
+
referencedExprs.add(expr);
|
|
8446
|
+
}
|
|
8447
|
+
}
|
|
8448
|
+
for (const expr of referencedExprs) {
|
|
8449
|
+
const exprFnReads = fnReadsByExpression.get(expr);
|
|
8450
|
+
if (exprFnReads) {
|
|
8451
|
+
for (const fn of exprFnReads.keys()) {
|
|
8452
|
+
if (fn.registerReason) {
|
|
8453
|
+
forEach(fn.referencedBindingsInFunction, (binding) => {
|
|
8454
|
+
addSerializeReason(binding.section, fn.registerReason, binding);
|
|
8455
|
+
if (binding.section !== fn.section) {
|
|
8456
|
+
addOwnerSerializeReason(
|
|
8457
|
+
fn.section,
|
|
8458
|
+
binding.section,
|
|
8459
|
+
fn.registerReason
|
|
8460
|
+
);
|
|
8461
|
+
}
|
|
8462
|
+
});
|
|
8419
8463
|
}
|
|
8420
|
-
}
|
|
8464
|
+
}
|
|
8421
8465
|
}
|
|
8422
8466
|
}
|
|
8423
8467
|
forEachSectionReverse((section) => {
|
|
@@ -8458,7 +8502,7 @@ function finalizeReferences() {
|
|
|
8458
8502
|
}
|
|
8459
8503
|
mergedReferences.clear();
|
|
8460
8504
|
readsByExpression.clear();
|
|
8461
|
-
|
|
8505
|
+
fnReadsByExpression.clear();
|
|
8462
8506
|
}
|
|
8463
8507
|
function getMaxOwnSourceOffset(intersection, section) {
|
|
8464
8508
|
let scopeOffset;
|
|
@@ -8612,7 +8656,7 @@ var propsUtil = new Sorted(function compareProps(a, b) {
|
|
|
8612
8656
|
var [getReadsByExpression] = createProgramState(
|
|
8613
8657
|
() => /* @__PURE__ */ new Map()
|
|
8614
8658
|
);
|
|
8615
|
-
var [
|
|
8659
|
+
var [getFunctionReadsByExpression] = createProgramState(
|
|
8616
8660
|
() => /* @__PURE__ */ new Map()
|
|
8617
8661
|
);
|
|
8618
8662
|
function addReadToExpression(root, binding) {
|
|
@@ -8628,11 +8672,14 @@ function addReadToExpression(root, binding) {
|
|
|
8628
8672
|
push(readsByExpression.get(exprExtra), read)
|
|
8629
8673
|
);
|
|
8630
8674
|
if (fnRoot) {
|
|
8631
|
-
const
|
|
8675
|
+
const fnReadsByExpr = getFunctionReadsByExpression();
|
|
8676
|
+
let exprFnReads = fnReadsByExpr.get(exprExtra);
|
|
8677
|
+
if (!exprFnReads) {
|
|
8678
|
+
fnReadsByExpr.set(exprExtra, exprFnReads = /* @__PURE__ */ new Map());
|
|
8679
|
+
}
|
|
8632
8680
|
const fnExtra = fnRoot.node.extra ??= {};
|
|
8633
|
-
exprExtra.fnExtra = fnExtra;
|
|
8634
8681
|
fnExtra.section = section;
|
|
8635
|
-
|
|
8682
|
+
exprFnReads.set(fnExtra, push(exprFnReads.get(fnExtra), read));
|
|
8636
8683
|
}
|
|
8637
8684
|
}
|
|
8638
8685
|
function dropReferences(node) {
|
|
@@ -8768,14 +8815,38 @@ function getReadReplacement(node) {
|
|
|
8768
8815
|
replacement = import_compiler35.types.identifier(binding.name);
|
|
8769
8816
|
}
|
|
8770
8817
|
} else if (read) {
|
|
8771
|
-
|
|
8772
|
-
|
|
8773
|
-
|
|
8774
|
-
|
|
8775
|
-
|
|
8776
|
-
|
|
8777
|
-
|
|
8818
|
+
const props = read.props ? Array.isArray(read.props) ? read.props.slice() : [read.props] : [];
|
|
8819
|
+
let curNode = node;
|
|
8820
|
+
let curBinding = read.binding;
|
|
8821
|
+
let replaceMember;
|
|
8822
|
+
replacement = import_compiler35.types.identifier(read.binding.name);
|
|
8823
|
+
while (props.length && (curNode.type === "MemberExpression" || curNode.type === "OptionalMemberExpression")) {
|
|
8824
|
+
const prop = props.pop();
|
|
8825
|
+
const memberProp = getMemberExpressionPropString(curNode);
|
|
8826
|
+
if (memberProp !== prop) break;
|
|
8827
|
+
replaceMember = curNode;
|
|
8828
|
+
curNode = curNode.object;
|
|
8829
|
+
}
|
|
8830
|
+
for (const prop of props) {
|
|
8831
|
+
if (curBinding) {
|
|
8832
|
+
curBinding = curBinding.propertyAliases.get(prop);
|
|
8833
|
+
}
|
|
8834
|
+
replacement = toMemberExpression(
|
|
8835
|
+
replacement,
|
|
8836
|
+
prop,
|
|
8837
|
+
!!curBinding?.nullable
|
|
8838
|
+
);
|
|
8839
|
+
}
|
|
8840
|
+
if (replaceMember) {
|
|
8841
|
+
if (read.binding.nullable && replaceMember.object.type !== replacement.type) {
|
|
8842
|
+
replaceMember.type = "OptionalMemberExpression";
|
|
8843
|
+
replaceMember.optional = true;
|
|
8778
8844
|
}
|
|
8845
|
+
replaceMember.object = withPreviousLocation(
|
|
8846
|
+
replacement,
|
|
8847
|
+
replaceMember.object
|
|
8848
|
+
);
|
|
8849
|
+
replacement = void 0;
|
|
8779
8850
|
}
|
|
8780
8851
|
}
|
|
8781
8852
|
return replacement && withPreviousLocation(replacement, node);
|
|
@@ -8804,13 +8875,70 @@ function pruneBinding(bindings, binding) {
|
|
|
8804
8875
|
}
|
|
8805
8876
|
return shouldPrune;
|
|
8806
8877
|
}
|
|
8878
|
+
function resolveReferencedBindingsInFunction(refs, reads) {
|
|
8879
|
+
if (reads) {
|
|
8880
|
+
if (Array.isArray(reads)) {
|
|
8881
|
+
let referencedBindings;
|
|
8882
|
+
for (const read of reads) {
|
|
8883
|
+
referencedBindings = bindingUtil.add(
|
|
8884
|
+
referencedBindings,
|
|
8885
|
+
findClosestReference(read.binding, refs)
|
|
8886
|
+
);
|
|
8887
|
+
}
|
|
8888
|
+
return referencedBindings;
|
|
8889
|
+
} else {
|
|
8890
|
+
return findClosestReference(reads.binding, refs);
|
|
8891
|
+
}
|
|
8892
|
+
}
|
|
8893
|
+
}
|
|
8894
|
+
function findClosestReference(from, refs) {
|
|
8895
|
+
if (Array.isArray(refs)) {
|
|
8896
|
+
if (bindingUtil.has(refs, from)) {
|
|
8897
|
+
return from;
|
|
8898
|
+
}
|
|
8899
|
+
for (const ref of refs) {
|
|
8900
|
+
const closest = findClosestUpstream(from, ref);
|
|
8901
|
+
if (closest) return closest;
|
|
8902
|
+
}
|
|
8903
|
+
} else {
|
|
8904
|
+
const closest = findClosestUpstream(from, refs);
|
|
8905
|
+
if (closest) return closest;
|
|
8906
|
+
}
|
|
8907
|
+
}
|
|
8908
|
+
function findClosestUpstream(from, to) {
|
|
8909
|
+
let closest = from;
|
|
8910
|
+
do {
|
|
8911
|
+
if (closest === to) {
|
|
8912
|
+
return closest;
|
|
8913
|
+
}
|
|
8914
|
+
} while (closest = closest.upstreamAlias);
|
|
8915
|
+
}
|
|
8916
|
+
function getRootBindings(reads) {
|
|
8917
|
+
let rootRefs;
|
|
8918
|
+
let allBindings;
|
|
8919
|
+
for (const { binding } of reads) {
|
|
8920
|
+
allBindings = bindingUtil.add(allBindings, binding);
|
|
8921
|
+
}
|
|
8922
|
+
for (const { binding } of reads) {
|
|
8923
|
+
let alias = binding.upstreamAlias;
|
|
8924
|
+
while (alias) {
|
|
8925
|
+
if (bindingUtil.has(allBindings, alias)) break;
|
|
8926
|
+
alias = alias.upstreamAlias;
|
|
8927
|
+
}
|
|
8928
|
+
if (!alias) {
|
|
8929
|
+
rootRefs = bindingUtil.add(rootRefs, binding);
|
|
8930
|
+
}
|
|
8931
|
+
}
|
|
8932
|
+
return rootRefs;
|
|
8933
|
+
}
|
|
8807
8934
|
function resolveReferencedBindings(expr, reads, intersectionsBySection) {
|
|
8808
8935
|
let referencedBindings;
|
|
8809
8936
|
if (Array.isArray(reads)) {
|
|
8937
|
+
const rootBindings = getRootBindings(reads);
|
|
8810
8938
|
for (const read of reads) {
|
|
8811
8939
|
let { binding } = read;
|
|
8812
8940
|
if (read.node) {
|
|
8813
|
-
const exprReference = (read.node.extra ??= {}).read ??= resolveExpressionReference(
|
|
8941
|
+
const exprReference = (read.node.extra ??= {}).read ??= resolveExpressionReference(rootBindings, binding);
|
|
8814
8942
|
({ binding } = (read.node.extra ??= {}).read = exprReference);
|
|
8815
8943
|
}
|
|
8816
8944
|
referencedBindings = bindingUtil.add(referencedBindings, binding);
|
|
@@ -8839,38 +8967,29 @@ function resolveReferencedBindings(expr, reads, intersectionsBySection) {
|
|
|
8839
8967
|
}
|
|
8840
8968
|
return referencedBindings;
|
|
8841
8969
|
}
|
|
8842
|
-
function resolveExpressionReference(
|
|
8843
|
-
const
|
|
8844
|
-
if (
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
|
|
8848
|
-
|
|
8849
|
-
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
return resolveExpressionReference(reads, alias, aliasProps);
|
|
8853
|
-
}
|
|
8854
|
-
alias = alias.upstreamAlias;
|
|
8855
|
-
}
|
|
8856
|
-
}
|
|
8970
|
+
function resolveExpressionReference(rootBindings, readBinding) {
|
|
8971
|
+
const upstreamRoot = readBinding.upstreamAlias && findClosestReference(readBinding.upstreamAlias, rootBindings);
|
|
8972
|
+
if (!upstreamRoot) {
|
|
8973
|
+
return createRead(readBinding, void 0);
|
|
8974
|
+
}
|
|
8975
|
+
let curBinding = readBinding;
|
|
8976
|
+
let props;
|
|
8977
|
+
while (curBinding !== upstreamRoot) {
|
|
8978
|
+
if (curBinding.property !== void 0) {
|
|
8979
|
+
props = push(props, curBinding.property);
|
|
8857
8980
|
}
|
|
8981
|
+
curBinding = curBinding.upstreamAlias;
|
|
8858
8982
|
}
|
|
8859
|
-
|
|
8983
|
+
if (Array.isArray(props)) {
|
|
8984
|
+
props.reverse();
|
|
8985
|
+
}
|
|
8986
|
+
return createRead(upstreamRoot, props);
|
|
8860
8987
|
}
|
|
8861
8988
|
function isSupersetSources(a, b) {
|
|
8862
8989
|
if (!b.sources) return true;
|
|
8863
8990
|
if (!a.sources) return false;
|
|
8864
8991
|
return bindingUtil.isSuperset(a.sources.state, b.sources.state) && bindingUtil.isSuperset(a.sources.param, b.sources.param);
|
|
8865
8992
|
}
|
|
8866
|
-
function getCanonicalProperty(binding) {
|
|
8867
|
-
if (binding.property !== void 0) {
|
|
8868
|
-
return binding.property;
|
|
8869
|
-
}
|
|
8870
|
-
if (binding.upstreamAlias && binding.excludeProperties === void 0) {
|
|
8871
|
-
return binding.upstreamAlias.property;
|
|
8872
|
-
}
|
|
8873
|
-
}
|
|
8874
8993
|
function createRead(binding, props) {
|
|
8875
8994
|
return { binding, props };
|
|
8876
8995
|
}
|
|
@@ -49,9 +49,8 @@ export interface ParamBinding extends Binding {
|
|
|
49
49
|
}
|
|
50
50
|
export type ReferencedBindings = Opt<Binding>;
|
|
51
51
|
export type Intersection = Many<Binding>;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
};
|
|
52
|
+
interface ReferencedFunctionExtra extends t.FunctionExtra, ReferencedExtra {
|
|
53
|
+
}
|
|
55
54
|
declare module "@marko/compiler/dist/types" {
|
|
56
55
|
interface NodeExtra {
|
|
57
56
|
section?: Section;
|
|
@@ -69,7 +68,11 @@ declare module "@marko/compiler/dist/types" {
|
|
|
69
68
|
[kIsInvoked]?: true;
|
|
70
69
|
}
|
|
71
70
|
interface FunctionExtra {
|
|
71
|
+
referencesScope?: boolean;
|
|
72
72
|
referencedBindingsInFunction?: ReferencedBindings;
|
|
73
|
+
name?: string;
|
|
74
|
+
registerId?: string;
|
|
75
|
+
registerReason?: SerializeReason;
|
|
73
76
|
}
|
|
74
77
|
interface ArrowFunctionExpressionExtra extends FunctionExtra {
|
|
75
78
|
}
|
|
@@ -109,22 +112,20 @@ export declare function getDebugName(binding: Binding): string;
|
|
|
109
112
|
export declare function getDebugNames(refs: ReferencedBindings): string;
|
|
110
113
|
export declare function getSectionInstancesAccessor(section: Section): string;
|
|
111
114
|
export declare function getSectionInstancesAccessorLiteral(section: Section): t.StringLiteral | t.NumericLiteral | undefined;
|
|
112
|
-
export declare function getReadReplacement(node: t.Identifier | t.MemberExpression | t.OptionalMemberExpression): t.
|
|
115
|
+
export declare function getReadReplacement(node: t.Identifier | t.MemberExpression | t.OptionalMemberExpression): t.Expression | undefined;
|
|
113
116
|
export interface ReferencedExtra extends t.NodeExtra {
|
|
114
117
|
section: Section;
|
|
115
|
-
fnExtra?: FnExtra;
|
|
116
118
|
}
|
|
117
119
|
export declare function isReferencedExtra(extra: t.NodeExtra | undefined): extra is ReferencedExtra;
|
|
118
120
|
export interface AssignedBindingExtra extends ReferencedExtra {
|
|
119
121
|
assignment: Binding;
|
|
122
|
+
assignmentFunction: ReferencedFunctionExtra;
|
|
120
123
|
}
|
|
121
124
|
export declare function isAssignedBindingExtra(extra: t.NodeExtra | undefined): extra is AssignedBindingExtra;
|
|
122
|
-
export interface RegisteredFnExtra extends ReferencedExtra {
|
|
125
|
+
export interface RegisteredFnExtra extends ReferencedExtra, t.FunctionExtra {
|
|
126
|
+
name: string;
|
|
123
127
|
registerId: string;
|
|
124
128
|
registerReason: SerializeReason;
|
|
125
|
-
name: string;
|
|
126
|
-
referencesScope?: boolean;
|
|
127
|
-
referencedBindingsInFunction: ReferencedBindings;
|
|
128
129
|
}
|
|
129
130
|
export declare function isRegisteredFnExtra(extra: t.NodeExtra | undefined): extra is RegisteredFnExtra;
|
|
130
131
|
export declare function getCanonicalExtra<T extends t.NodeExtra>(extra: T): T;
|
|
@@ -1,22 +1,4 @@
|
|
|
1
1
|
import { types as t } from "@marko/compiler";
|
|
2
|
-
import { type SerializeReason } from "../util/serialize-reasons";
|
|
3
|
-
declare module "@marko/compiler/dist/types" {
|
|
4
|
-
interface FunctionDeclarationExtra {
|
|
5
|
-
registerId?: string;
|
|
6
|
-
registerReason?: SerializeReason;
|
|
7
|
-
name?: string;
|
|
8
|
-
}
|
|
9
|
-
interface FunctionExpressionExtra {
|
|
10
|
-
registerId?: string;
|
|
11
|
-
registerReason?: SerializeReason;
|
|
12
|
-
name?: string;
|
|
13
|
-
}
|
|
14
|
-
interface ArrowFunctionExpressionExtra {
|
|
15
|
-
registerId?: string;
|
|
16
|
-
registerReason?: SerializeReason;
|
|
17
|
-
name?: string;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
2
|
declare const _default: {
|
|
21
3
|
analyze(this: unknown, fn: t.NodePath<t.Function>): void;
|
|
22
4
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "marko",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.96",
|
|
4
4
|
"description": "Optimized runtime for Marko templates.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"api",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"build": "node -r ~ts ./scripts/bundle.ts"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@marko/compiler": "^5.39.
|
|
51
|
+
"@marko/compiler": "^5.39.41",
|
|
52
52
|
"csstype": "^3.1.3",
|
|
53
53
|
"magic-string": "^0.30.17"
|
|
54
54
|
},
|