diff --git a/README.md b/README.md index 3a43725637..fa725804a9 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ cd svelte npm install ``` +> Do not use Yarn to install the dependencies, as the specific package versions in `package-lock.json` are used to build and test Svelte. + > Many tests depend on newlines being preserved as ``. On Windows, you can ensure this by cloning with: > ```bash > git -c core.autocrlf=false clone https://github.com/sveltejs/svelte.git diff --git a/src/compiler/compile/Component.ts b/src/compiler/compile/Component.ts index 2569820464..a7fe2992d1 100644 --- a/src/compiler/compile/Component.ts +++ b/src/compiler/compile/Component.ts @@ -239,7 +239,7 @@ export default class Component { const program: any = { type: 'Program', body: result.js }; walk(program, { - enter: (node, parent, key) => { + enter: (node: Node, parent: Node, key) => { if (node.type === 'Identifier') { if (node.name[0] === '@') { if (node.name[1] === '_') { @@ -526,7 +526,7 @@ export default class Component { if (!script) return; walk(script.content, { - enter(node) { + enter(node: Node) { if (node.type === 'LabeledStatement' && node.label.name === '$') { component.warn(node as any, { code: 'module-script-reactive-declaration', @@ -715,7 +715,7 @@ export default class Component { let scope_updated = false; walk(content, { - enter(node, parent, prop, index) { + enter(node: Node, parent, prop, index) { if (map.has(node)) { scope = map.get(node); } @@ -741,7 +741,7 @@ export default class Component { component.warn_on_undefined_store_value_references(node, parent, scope); }, - leave(node) { + leave(node: Node) { // do it on leave, to prevent infinite loop if (component.compile_options.dev && component.compile_options.loopGuardTimeout > 0) { const to_replace_for_loop_protect = component.loop_protect(node, scope, component.compile_options.loopGuardTimeout); @@ -785,7 +785,7 @@ export default class Component { let scope = instance_scope; walk(content, { - enter(node, parent) { + enter(node: Node, parent: Node) { if (map.has(node)) { scope = map.get(node); } @@ -818,7 +818,7 @@ export default class Component { } }, - leave(node) { + leave(node: Node) { if (map.has(node)) { scope = scope.parent; } @@ -886,7 +886,7 @@ export default class Component { let scope = instance_scope; walk(this.ast.instance.content, { - enter(node, parent, key, index) { + enter(node: Node, parent, key, index) { if (/Function/.test(node.type)) { return this.skip(); } @@ -963,7 +963,7 @@ export default class Component { } }, - leave(node, parent, _key, index) { + leave(node: Node, parent, _key, index) { if (map.has(node)) { scope = scope.parent; } @@ -1064,7 +1064,7 @@ export default class Component { walking.add(fn_declaration); walk(fn_declaration, { - enter(node, parent) { + enter(node: Node, parent) { if (!hoistable) return this.skip(); if (map.has(node)) { @@ -1112,7 +1112,7 @@ export default class Component { } }, - leave(node) { + leave(node: Node) { if (map.has(node)) { scope = scope.parent; } @@ -1155,7 +1155,7 @@ export default class Component { const map = this.instance_scope_map; walk(node.body, { - enter(node, parent) { + enter(node: Node, parent) { if (map.has(node)) { scope = map.get(node); } @@ -1195,7 +1195,7 @@ export default class Component { } }, - leave(node) { + leave(node: Node) { if (map.has(node)) { scope = scope.parent; } @@ -1455,4 +1455,4 @@ function get_relative_path(from: string, to: string) { } return from_parts.concat(to_parts).join('/'); -} \ No newline at end of file +} diff --git a/src/compiler/compile/nodes/Let.ts b/src/compiler/compile/nodes/Let.ts index 7b92c5ce70..ef38cd36a8 100644 --- a/src/compiler/compile/nodes/Let.ts +++ b/src/compiler/compile/nodes/Let.ts @@ -1,7 +1,7 @@ import Node from './shared/Node'; import Component from '../Component'; import { walk } from 'estree-walker'; -import { Identifier } from 'estree'; +import { BasePattern, Identifier } from 'estree'; const applicable = new Set(['Identifier', 'ObjectExpression', 'ArrayExpression', 'Property']); @@ -22,7 +22,7 @@ export default class Let extends Node { this.value = info.expression; walk(info.expression, { - enter(node) { + enter(node: Identifier|BasePattern) { if (!applicable.has(node.type)) { component.error(node as any, { code: 'invalid-let', @@ -31,16 +31,16 @@ export default class Let extends Node { } if (node.type === 'Identifier') { - names.push(node.name); + names.push((node as Identifier).name); } // slightly unfortunate hack if (node.type === 'ArrayExpression') { - (node as any).type = 'ArrayPattern'; + node.type = 'ArrayPattern'; } if (node.type === 'ObjectExpression') { - (node as any).type = 'ObjectPattern'; + node.type = 'ObjectPattern'; } } }); @@ -48,4 +48,4 @@ export default class Let extends Node { names.push(this.name.name); } } -} \ No newline at end of file +} diff --git a/src/compiler/compile/nodes/shared/Expression.ts b/src/compiler/compile/nodes/shared/Expression.ts index 1882c19267..db0908c3f4 100644 --- a/src/compiler/compile/nodes/shared/Expression.ts +++ b/src/compiler/compile/nodes/shared/Expression.ts @@ -143,7 +143,7 @@ export default class Expression { } }, - leave(node) { + leave(node: Node) { if (map.has(node)) { scope = scope.parent; } @@ -338,7 +338,7 @@ export default class Expression { }); } - return (this.manipulated = node); + return (this.manipulated = node as Node); } } diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index 3d1870ccaa..d6da614276 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -200,7 +200,7 @@ export default function dom( let execution_context: Node | null = null; walk(component.ast.instance.content, { - enter(node) { + enter(node: Node) { if (map.has(node)) { scope = map.get(node) as Scope; @@ -212,7 +212,7 @@ export default function dom( } }, - leave(node) { + leave(node: Node) { if (map.has(node)) { scope = scope.parent; }