From f6060ed0dd37d0ca40c3e2f1401a59774c5547eb Mon Sep 17 00:00:00 2001 From: daszgfz Date: Tue, 26 Nov 2019 21:02:29 -0500 Subject: [PATCH] more aliased stuff --- src/compiler/compile/Component.ts | 5 +++++ test/js/samples/aliased-function/expected.js | 21 +++++++++++++++++++ test/js/samples/aliased-function/input.svelte | 5 +++++ 3 files changed, 31 insertions(+) create mode 100644 test/js/samples/aliased-function/expected.js create mode 100644 test/js/samples/aliased-function/input.svelte diff --git a/src/compiler/compile/Component.ts b/src/compiler/compile/Component.ts index 53b66ce024..9f608bec8c 100644 --- a/src/compiler/compile/Component.ts +++ b/src/compiler/compile/Component.ts @@ -796,6 +796,11 @@ export default class Component { scope = map.get(node); } + if (node.type === 'VariableDeclarator' && node.id.type === 'Identifier' && node.init.type === 'Identifier') { + const variable = component.var_lookup.get(node.init.name); + variable.aliased = true; + } + if (node.type === 'ExpressionStatement' && node.expression.type === 'CallExpression') { node.expression.arguments.forEach(arg => { if (arg.type === 'Identifier') { diff --git a/test/js/samples/aliased-function/expected.js b/test/js/samples/aliased-function/expected.js new file mode 100644 index 0000000000..55ddc9bda5 --- /dev/null +++ b/test/js/samples/aliased-function/expected.js @@ -0,0 +1,21 @@ +/* generated by Svelte vX.Y.Z */ +import { SvelteComponent, init, safe_not_equal } from "svelte/internal"; + +function instance($$self) { + function foo() { + + } + + const foo_alias = foo; + foo_alias.nasty_but_legal(); + return []; +} + +class Component extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance, null, safe_not_equal, {}); + } +} + +export default Component; \ No newline at end of file diff --git a/test/js/samples/aliased-function/input.svelte b/test/js/samples/aliased-function/input.svelte new file mode 100644 index 0000000000..ffd1eea803 --- /dev/null +++ b/test/js/samples/aliased-function/input.svelte @@ -0,0 +1,5 @@ + \ No newline at end of file