diff --git a/src/runtime/internal/Component.ts b/src/runtime/internal/Component.ts index 10588a08046b..3c8bf9d0f2cd 100644 --- a/src/runtime/internal/Component.ts +++ b/src/runtime/internal/Component.ts @@ -127,7 +127,7 @@ export function init(component, options, instance, create_fragment, not_equal, p let ready = false; $$.ctx = instance - ? instance(component, prop_values, (i, ret, ...rest) => { + ? instance.call(component, component, prop_values, (i, ret, ...rest) => { const value = rest.length ? rest[0] : ret; if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { if ($$.bound[i]) $$.bound[i](value); diff --git a/test/custom-elements/samples/instance-this/main.svelte b/test/custom-elements/samples/instance-this/main.svelte new file mode 100644 index 000000000000..47ff31e4922a --- /dev/null +++ b/test/custom-elements/samples/instance-this/main.svelte @@ -0,0 +1,7 @@ + + + diff --git a/test/custom-elements/samples/instance-this/test.js b/test/custom-elements/samples/instance-this/test.js new file mode 100644 index 000000000000..8520710ca059 --- /dev/null +++ b/test/custom-elements/samples/instance-this/test.js @@ -0,0 +1,8 @@ +import * as assert from 'assert'; +import './main.svelte'; + +export default function (target) { + target.innerHTML = ''; + const el = target.querySelector('my-app'); + assert.ok(el.self === el); +} \ No newline at end of file