Skip to content

Commit c84aea7

Browse files
committed
tidy up
1 parent 4fcc7d1 commit c84aea7

File tree

3 files changed

+17
-29
lines changed

3 files changed

+17
-29
lines changed

packages/svelte/src/compiler/phases/2-analyze/visitors/ExportSpecifier.js

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,18 @@ export function ExportSpecifier(node, context) {
2626
if (binding) binding.reassigned = binding.updated = true;
2727
}
2828
} else {
29-
const undefined_exports = context.state.analysis.undefined_exports;
30-
validate_export(node, context.state.scope, local_name, undefined_exports);
31-
}
32-
}
33-
34-
/**
35-
*
36-
* @param {Node} node
37-
* @param {Scope} scope
38-
* @param {string} name
39-
* @param {Map<string, any>} undefined_exports
40-
*/
41-
function validate_export(node, scope, name, undefined_exports) {
42-
const binding = scope.get(name);
43-
if (!binding) {
44-
undefined_exports.set(name, node);
45-
return;
46-
}
29+
const binding = context.state.scope.get(local_name);
4730

48-
if (binding.kind === 'derived') {
49-
e.derived_invalid_export(node);
50-
}
31+
if (binding) {
32+
if (binding.kind === 'derived') {
33+
e.derived_invalid_export(node);
34+
}
5135

52-
if ((binding.kind === 'state' || binding.kind === 'raw_state') && binding.reassigned) {
53-
e.state_invalid_export(node);
36+
if ((binding.kind === 'state' || binding.kind === 'raw_state') && binding.reassigned) {
37+
e.state_invalid_export(node);
38+
}
39+
} else {
40+
context.state.analysis.undefined_exports.set(local_name, node);
41+
}
5442
}
5543
}

packages/svelte/src/compiler/phases/2-analyze/visitors/SnippetBlock.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ export function SnippetBlock(node, context) {
2828
context.path[0].type === 'Fragment' &&
2929
can_hoist_snippet(context.state.scope, context.state.scopes);
3030

31-
const undefined_exports = context.state.analysis.undefined_exports;
3231
const name = node.expression.name;
3332

3433
if (can_hoist) {
3534
const binding = /** @type {Binding} */ (context.state.scope.get(name));
3635
context.state.analysis.module.scope.declarations.set(name, binding);
37-
}
38-
39-
if (!can_hoist && undefined_exports.has(name)) {
40-
e.snippet_invalid_export(/** @type {any} */ (undefined_exports.get(name)));
36+
} else {
37+
const undefined_export = context.state.analysis.undefined_exports.get(name);
38+
if (undefined_export) {
39+
e.snippet_invalid_export(undefined_export);
40+
}
4141
}
4242

4343
node.metadata.can_hoist = can_hoist;

packages/svelte/src/compiler/phases/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { AST, Binding, Css, SvelteNode } from '#compiler';
2-
import type { Identifier, LabeledStatement, Program, VariableDeclaration } from 'estree';
2+
import type { Identifier, LabeledStatement, Node, Program } from 'estree';
33
import type { Scope, ScopeRoot } from './scope.js';
44

55
export interface Js {

0 commit comments

Comments
 (0)