diff --git a/package-lock.json b/package-lock.json index d58fdac957..d90c33bcb2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -974,6 +974,33 @@ "requires": { "@types/estree": "*" } + }, + "periscopic": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-2.0.3.tgz", + "integrity": "sha512-FuCZe61mWxQOJAQFEfmt9FjzebRlcpFz8sFPbyaCKtdusPkMEbA9ey0eARnRav5zAhmXznhaQkKGFAPn7X9NUw==", + "dev": true, + "requires": { + "estree-walker": "^2.0.2", + "is-reference": "^1.1.4" + }, + "dependencies": { + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + } + } } } }, @@ -3473,19 +3500,19 @@ "dev": true }, "periscopic": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-2.0.3.tgz", - "integrity": "sha512-FuCZe61mWxQOJAQFEfmt9FjzebRlcpFz8sFPbyaCKtdusPkMEbA9ey0eARnRav5zAhmXznhaQkKGFAPn7X9NUw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.0.3.tgz", + "integrity": "sha512-8wX0FcHlCndaln004f0tLr3tHLLpSQQHqVAiunx859Fz1jZ75OG5Hpt5F9DLmM0YnfGuDZPJC3Yh0w9eCngj/g==", "dev": true, "requires": { - "estree-walker": "^2.0.2", + "estree-walker": "^3.0.0", "is-reference": "^1.1.4" }, "dependencies": { "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.0.tgz", + "integrity": "sha512-s6ceX0NFiU/vKPiKvFdR83U1Zffu7upwZsGwpoqfg5rbbq1l50WQ5hCeIvM6E6oD4shUHCYMsiFPns4Jk0YfMQ==", "dev": true } } diff --git a/package.json b/package.json index 14cb172b14..495893a91d 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "locate-character": "^2.0.5", "magic-string": "^0.25.3", "mocha": "^7.0.0", - "periscopic": "^2.0.3", + "periscopic": "^3.0.4", "puppeteer": "^2.1.1", "rollup": "^1.27.14", "source-map": "^0.7.3", diff --git a/src/compiler/compile/Component.ts b/src/compiler/compile/Component.ts index 8067e29828..c7fd3481dd 100644 --- a/src/compiler/compile/Component.ts +++ b/src/compiler/compile/Component.ts @@ -10,7 +10,6 @@ import { Scope, extract_identifiers } from './utils/scope'; -import { Node as PeriscopicNode } from 'periscopic'; import Stylesheet from './css/Stylesheet'; import { test } from '../config'; import Fragment from './nodes/Fragment'; @@ -820,7 +819,7 @@ export default class Component { if (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') { const assignee = node.type === 'AssignmentExpression' ? node.left : node.argument; - const names = extract_names(assignee as PeriscopicNode); + const names = extract_names(assignee as Node); const deep = assignee.type === 'MemberExpression'; diff --git a/src/compiler/compile/nodes/shared/Expression.ts b/src/compiler/compile/nodes/shared/Expression.ts index afe326e831..7c6fc39185 100644 --- a/src/compiler/compile/nodes/shared/Expression.ts +++ b/src/compiler/compile/nodes/shared/Expression.ts @@ -17,7 +17,6 @@ import replace_object from '../../utils/replace_object'; import is_contextual from './is_contextual'; import EachBlock from '../EachBlock'; import { clone } from '../../../utils/clone'; -import { Node as PeriscopicNode } from 'periscopic'; import compiler_errors from '../../compiler_errors'; type Owner = INode; @@ -355,7 +354,7 @@ export default class Expression { // (a or b). In destructuring cases (`[d, e] = [e, d]`) there // may be more, in which case we need to tack the extra ones // onto the initial function call - const names = new Set(extract_names(assignee as PeriscopicNode)); + const names = new Set(extract_names(assignee as Node)); const traced: Set = new Set(); names.forEach(name => { diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index 6a02a00949..7894c42115 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -3,7 +3,7 @@ import Component from '../Component'; import Renderer from './Renderer'; import { CompileOptions, CssResult } from '../../interfaces'; import { walk } from 'estree-walker'; -import { extract_names, Node as PeriscopicNode, Scope } from 'periscopic'; +import { extract_names, Scope } from 'periscopic'; import { invalidate } from './invalidate'; import Block from './Block'; import { ClassDeclaration, FunctionExpression, Node, Statement, ObjectExpression, Expression } from 'estree'; @@ -253,7 +253,7 @@ export default function dom( // (a or b). In destructuring cases (`[d, e] = [e, d]`) there // may be more, in which case we need to tack the extra ones // onto the initial function call - const names = new Set(extract_names(assignee as PeriscopicNode)); + const names = new Set(extract_names(assignee as Node)); this.replace(invalidate(renderer, scope, node, names, execution_context === null)); } diff --git a/src/compiler/compile/render_ssr/index.ts b/src/compiler/compile/render_ssr/index.ts index baafe40251..b35a6ce6ff 100644 --- a/src/compiler/compile/render_ssr/index.ts +++ b/src/compiler/compile/render_ssr/index.ts @@ -6,7 +6,7 @@ import Renderer from './Renderer'; import { INode as TemplateNode } from '../nodes/interfaces'; // TODO import Text from '../nodes/Text'; import { LabeledStatement, Statement, Node } from 'estree'; -import { Node as PeriscopicNode , extract_names } from 'periscopic'; +import { extract_names } from 'periscopic'; import { walk } from 'estree-walker'; import { invalidate } from '../render_dom/invalidate'; @@ -90,7 +90,7 @@ export default function ssr( if (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') { const assignee = node.type === 'AssignmentExpression' ? node.left : node.argument; - const names = new Set(extract_names(assignee as PeriscopicNode)); + const names = new Set(extract_names(assignee as Node)); const to_invalidate = new Set(); for (const name of names) { diff --git a/src/compiler/compile/utils/scope.ts b/src/compiler/compile/utils/scope.ts index 033baf32c0..e103defa4d 100644 --- a/src/compiler/compile/utils/scope.ts +++ b/src/compiler/compile/utils/scope.ts @@ -1,8 +1,8 @@ import { Node } from 'estree'; -import { Node as PeriscopicNode, analyze, Scope, extract_names, extract_identifiers } from 'periscopic'; +import { analyze, Scope, extract_names, extract_identifiers } from 'periscopic'; export function create_scopes(expression: Node) { - return analyze(expression as PeriscopicNode); + return analyze(expression); } export { Scope, extract_names, extract_identifiers };