Skip to content

Commit fc32147

Browse files
authored
Merge pull request #3098 from sveltejs/gh-3064
add Error to known globals, declare catch block parameter
2 parents a0e0f01 + 1fc4b1c commit fc32147

File tree

4 files changed

+22
-0
lines changed

4 files changed

+22
-0
lines changed

src/compiler/compile/utils/scope.ts

+7
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ export function create_scopes(expression: Node) {
4040
map.set(node, scope);
4141
} else if (/(Class|Variable)Declaration/.test(node.type)) {
4242
scope.add_declaration(node);
43+
} else if (node.type === 'CatchClause') {
44+
scope = new Scope(scope, true);
45+
map.set(node, scope);
46+
47+
extract_names(node.param).forEach(name => {
48+
scope.declarations.set(name, node.param);
49+
});
4350
} else if (node.type === 'Identifier' && is_reference(node as ESTreeNode, parent as ESTreeNode)) {
4451
if (!scope.has(node.name) && !globals.has(node.name)) {
4552
globals.set(node.name, node);

src/compiler/utils/names.ts

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const globals = new Set([
1313
'document',
1414
'encodeURI',
1515
'encodeURIComponent',
16+
'Error',
1617
'Infinity',
1718
'Intl',
1819
'isFinite',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script>
2+
let value = null;
3+
</script>
4+
5+
<button on:click={event => {
6+
try {
7+
throw new Error('foo');
8+
} catch (error) {
9+
value = error;
10+
}
11+
}}>Click to create error</button>
12+
13+
{String(value)}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[]

0 commit comments

Comments
 (0)