mirror of
https://github.com/morluto/rea.git
synced 2026-10-27 09:55:46 +00:00
fix(javascript): retain conditional mutation ordering uncertainty
This commit is contained in:
1 parent
001851fde6
commit
b8a8190b2f
2 files changed
+17
-9
No files matched your search
@@ -94,19 +94,25 @@ const directMutationPosition = (
|
||||
!t.isTaggedTemplateExpression(node)
|
||||
)
|
||||
return null;
|
||||
let current = parents.get(node);
|
||||
while (current !== undefined) {
|
||||
if (t.isFunction(current)) return null;
|
||||
if (t.isStatement(current)) return statementPosition(current, parents);
|
||||
if (t.isVariableDeclarator(current)) {
|
||||
const declaration = parents.get(current);
|
||||
let current: t.Node = node;
|
||||
while (true) {
|
||||
const parent = parents.get(current);
|
||||
if (
|
||||
parent === undefined ||
|
||||
t.isFunction(parent) ||
|
||||
(t.isLogicalExpression(parent) && parent.right === current) ||
|
||||
(t.isConditionalExpression(parent) && parent.test !== current)
|
||||
)
|
||||
return null;
|
||||
if (t.isStatement(parent)) return statementPosition(parent, parents);
|
||||
if (t.isVariableDeclarator(parent)) {
|
||||
const declaration = parents.get(parent);
|
||||
return t.isVariableDeclaration(declaration)
|
||||
? statementPosition(declaration, parents, current)
|
||||
? statementPosition(declaration, parents, parent)
|
||||
: null;
|
||||
}
|
||||
current = parents.get(current);
|
||||
current = parent;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
const referenceInitializerPosition = (
|
||||
|
||||
Reference in new issue
Block a user