mirror of
https://github.com/sveltejs/svelte.git
synced 2024-12-01 17:30:59 +01:00
use external is-reference library
This commit is contained in:
parent
1bc675da50
commit
c6bba03f1d
@ -1,10 +1,10 @@
|
||||
import MagicString, { Bundle } from 'magic-string';
|
||||
import isReference from 'is-reference';
|
||||
import { walk, childKeys } from 'estree-walker';
|
||||
import { getLocator } from 'locate-character';
|
||||
import deindent from '../utils/deindent';
|
||||
import CodeBuilder from '../utils/CodeBuilder';
|
||||
import getCodeFrame from '../utils/getCodeFrame';
|
||||
import isReference from '../utils/isReference';
|
||||
import flattenReference from '../utils/flattenReference';
|
||||
import reservedNames from '../utils/reservedNames';
|
||||
import namespaces from '../utils/namespaces';
|
||||
|
@ -1,7 +1,7 @@
|
||||
import MagicString from 'magic-string';
|
||||
import isReference from 'is-reference';
|
||||
import { parseExpressionAt } from 'acorn';
|
||||
import annotateWithScopes from '../../utils/annotateWithScopes';
|
||||
import isReference from '../../utils/isReference';
|
||||
import { walk } from 'estree-walker';
|
||||
import deindent from '../../utils/deindent';
|
||||
import { stringify, escape } from '../../utils/stringify';
|
||||
|
@ -1,34 +0,0 @@
|
||||
import { Node } from '../interfaces';
|
||||
|
||||
export default function isReference(node: Node, parent: Node): boolean {
|
||||
if (node.type === 'MemberExpression') {
|
||||
return !node.computed && isReference(node.object, node);
|
||||
}
|
||||
|
||||
if (node.type === 'Identifier') {
|
||||
// the only time we could have an identifier node without a parent is
|
||||
// if it's the entire body of a function without a block statement –
|
||||
// i.e. an arrow function expression like `a => a`
|
||||
if (!parent) return true;
|
||||
|
||||
// TODO is this right?
|
||||
if (
|
||||
parent.type === 'MemberExpression' ||
|
||||
parent.type === 'MethodDefinition'
|
||||
) {
|
||||
return parent.computed || node === parent.object;
|
||||
}
|
||||
|
||||
// disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`
|
||||
if (parent.type === 'Property')
|
||||
return parent.computed || node === parent.value;
|
||||
|
||||
// disregard the `bar` in `class Foo { bar () {...} }`
|
||||
if (parent.type === 'MethodDefinition') return false;
|
||||
|
||||
// disregard the `bar` in `export { foo as bar }`
|
||||
if (parent.type === 'ExportSpecifier' && node !== parent.local) return;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
import { walk } from 'estree-walker';
|
||||
import isReference from '../../../utils/isReference';
|
||||
import isReference from 'is-reference';
|
||||
import { Node } from '../../../interfaces';
|
||||
|
||||
export default function usesThisOrArguments(node: Node) {
|
||||
|
Loading…
Reference in New Issue
Block a user