mirror of https://github.com/sveltejs/svelte
deconflict bind:this variable (#4949)
parent
38de3b2e9f
commit
7dfd9e9653
@ -0,0 +1,19 @@
|
||||
import { Node, Literal, Identifier, MemberExpression } from "estree";
|
||||
|
||||
export function compare_node(a: Node | void, b: Node | void) {
|
||||
if (a === b) return true;
|
||||
if (!a || !b) return false;
|
||||
if (a.type !== b.type) return false;
|
||||
switch (a.type) {
|
||||
case "Identifier":
|
||||
return a.name === (b as Identifier).name;
|
||||
case "MemberExpression":
|
||||
return (
|
||||
compare_node(a.object, (b as MemberExpression).object) &&
|
||||
compare_node(a.property, (b as MemberExpression).property) &&
|
||||
a.computed === (b as MemberExpression).computed
|
||||
);
|
||||
case 'Literal':
|
||||
return a.value === (b as Literal).value;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue