From 5cd76be290736a2ba0f7385ce5ba73b2b0e977ca Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 18 Sep 2017 15:12:40 -0400 Subject: [PATCH] various fixes --- src/generators/Generator.ts | 6 +- src/generators/dom/index.ts | 46 +++++----- .../shared/utils/getModuleWrapper.ts | 89 ++++++++++++++++--- src/index.ts | 2 +- src/interfaces.ts | 2 + .../expected-bundle.js | 6 +- .../expected.js | 7 +- .../component-static/expected-bundle.js | 6 +- test/js/samples/component-static/expected.js | 7 +- .../computed-collapsed-if/expected-bundle.js | 6 +- .../samples/computed-collapsed-if/expected.js | 7 +- .../css-media-query/expected-bundle.js | 6 +- test/js/samples/css-media-query/expected.js | 7 +- .../expected-bundle.js | 6 +- .../css-shadow-dom-keyframes/expected.js | 7 +- .../expected-bundle.js | 6 +- .../each-block-changed-check/expected.js | 7 +- .../event-handlers-custom/expected-bundle.js | 6 +- .../samples/event-handlers-custom/expected.js | 7 +- .../if-block-no-update/expected-bundle.js | 6 +- .../js/samples/if-block-no-update/expected.js | 7 +- .../if-block-simple/expected-bundle.js | 6 +- test/js/samples/if-block-simple/expected.js | 7 +- .../expected-bundle.js | 6 +- .../expected.js | 7 +- .../expected-bundle.js | 6 +- .../inline-style-optimized-url/expected.js | 7 +- .../inline-style-optimized/expected-bundle.js | 6 +- .../inline-style-optimized/expected.js | 7 +- .../expected-bundle.js | 6 +- .../inline-style-unoptimized/expected.js | 7 +- .../expected-bundle.js | 6 +- .../input-without-blowback-guard/expected.js | 7 +- .../legacy-input-type/expected-bundle.js | 6 +- test/js/samples/legacy-input-type/expected.js | 7 +- .../legacy-quote-class/expected-bundle.js | 6 +- .../js/samples/legacy-quote-class/expected.js | 7 +- .../samples/media-bindings/expected-bundle.js | 6 +- test/js/samples/media-bindings/expected.js | 7 +- .../non-imported-component/expected-bundle.js | 6 +- .../non-imported-component/expected.js | 9 +- .../expected-bundle.js | 6 +- .../onrender-onteardown-rewritten/expected.js | 7 +- .../samples/setup-method/expected-bundle.js | 6 +- test/js/samples/setup-method/expected.js | 7 +- .../expected-bundle.js | 6 +- .../use-elements-as-anchors/expected.js | 7 +- 47 files changed, 311 insertions(+), 109 deletions(-) diff --git a/src/generators/Generator.ts b/src/generators/Generator.ts index aadd5a10f1..f1ff050636 100644 --- a/src/generators/Generator.ts +++ b/src/generators/Generator.ts @@ -302,7 +302,7 @@ export default class Generator { return (expression._dependencies = dependencies); } - generate(result: string, options: CompileOptions, { banner = '', name, format }: GenerateOptions ) { + generate(result: string, options: CompileOptions, { banner = '', sharedPath, helpers, name, format }: GenerateOptions ) { const pattern = /\[✂(\d+)-(\d+)$/; const parts = result.split('✂]'); @@ -316,9 +316,9 @@ export default class Generator { }); } - const { intro, outro } = getModuleWrapper(format, name, options, this.imports, this.source); + const { intro, outro } = getModuleWrapper(format, name, options, banner, sharedPath, helpers, this.imports, this.source); - addString(banner + intro + '\n\n'); + addString(intro + '\n\n'); const { filename } = options; diff --git a/src/generators/dom/index.ts b/src/generators/dom/index.ts index 4455321b61..03e9b0636d 100644 --- a/src/generators/dom/index.ts +++ b/src/generators/dom/index.ts @@ -326,34 +326,20 @@ export default function dom( return generator.alias(name); }); - let banner = `/* ${options.filename ? `${options.filename} ` : ``}generated by Svelte v${version} */\n`; + let helpers; if (sharedPath) { - const used = Array.from(usedHelpers).sort(); - if (format === 'es') { - const names = used.map(name => { - const alias = generator.alias(name); - return name !== alias ? `${name} as ${alias}` : name; - }); - - banner += `import { ${names.join(', ')} } from ${JSON.stringify(sharedPath)};\n\n`; - } - - else if (format === 'cjs') { - const SHARED = '__shared'; - let requires = `var ${SHARED} = require(${JSON.stringify(sharedPath)});`; - used.forEach(name => { - const alias = generator.alias(name); - requires += `\nvar ${alias} = ${SHARED}.${name};`; - }); - - banner += requires + '\n\n'; - } - - else { + if (format !== 'es' && format !== 'cjs') { throw new Error(`Components with shared helpers must be compiled with \`format: 'es'\` or \`format: 'cjs'\``); } + const used = Array.from(usedHelpers).sort(); + helpers = used.map(name => { + const alias = generator.alias(name); + return { name, alias }; + }); } else { + let inlineHelpers = ''; + usedHelpers.forEach(key => { const str = shared[key]; const code = new MagicString(str); @@ -391,19 +377,27 @@ export default function dom( // special case const global = `_svelteTransitionManager`; - banner += `\n\nvar ${generator.alias('transitionManager')} = window.${global} || (window.${global} = ${code});`; + inlineHelpers += `var ${generator.alias('transitionManager')} = window.${global} || (window.${global} = ${code});\n\n`; } else { const alias = generator.alias(expression.id.name); if (alias !== expression.id.name) code.overwrite(expression.id.start, expression.id.end, alias); - banner += `\n\n${code}`; + inlineHelpers += `${code}\n\n`; } }); + + result = inlineHelpers + result; } + const filename = options.filename && ( + typeof process !== 'undefined' ? options.filename.replace(process.cwd(), '').replace(/^[\/\\]/, '') : options.filename + ); + return generator.generate(result, options, { - banner, + banner: `/* ${filename ? `${filename} ` : ``}generated by Svelte v${version} */`, + sharedPath, + helpers, name, format, }); diff --git a/src/generators/shared/utils/getModuleWrapper.ts b/src/generators/shared/utils/getModuleWrapper.ts index c535990f9f..6680c4896a 100644 --- a/src/generators/shared/utils/getModuleWrapper.ts +++ b/src/generators/shared/utils/getModuleWrapper.ts @@ -11,10 +11,13 @@ export default function getModuleWrapper( format: ModuleFormat, name: string, options: CompileOptions, + banner: string, + sharedPath: string, + helpers: { name: string, alias: string }[], imports: Node[], source: string ) { - if (format === 'es') return getEsWrapper(name, options, imports, source); + if (format === 'es') return getEsWrapper(name, options, banner, sharedPath, helpers, imports, source); const dependencies = imports.map((declaration, i) => { const defaultImport = declaration.specifiers.find( @@ -53,22 +56,36 @@ export default function getModuleWrapper( return { name, statements, source: declaration.source.value }; }); - if (format === 'amd') return getAmdWrapper(name, options, dependencies); - if (format === 'cjs') return getCjsWrapper(name, options, dependencies); - if (format === 'iife') return getIifeWrapper(name, options, dependencies); - if (format === 'umd') return getUmdWrapper(name, options, dependencies); - if (format === 'eval') return getEvalWrapper(name, options, dependencies); + if (format === 'amd') return getAmdWrapper(name, options, banner, dependencies); + if (format === 'cjs') return getCjsWrapper(name, options, banner, sharedPath, helpers, dependencies); + if (format === 'iife') return getIifeWrapper(name, options, banner, dependencies); + if (format === 'umd') return getUmdWrapper(name, options, banner, dependencies); + if (format === 'eval') return getEvalWrapper(name, options, banner, dependencies); throw new Error(`Not implemented: ${format}`); } -function getEsWrapper(name: string, options: CompileOptions, imports: Node[], source: string) { +function getEsWrapper( + name: string, + options: CompileOptions, + banner: string, + sharedPath: string, + helpers: { name: string, alias: string }[], + imports: Node[], + source: string +) { + const importHelpers = helpers && ( + `import { ${helpers.map(h => h.name === h.alias ? h.name : `${h.name} as ${h.alias}`).join(', ')} } from ${JSON.stringify(sharedPath)};` + ); + const importBlock = imports .map((declaration: Node) => source.slice(declaration.start, declaration.end)) .join('\n'); return { intro: deindent` + ${banner} + ${importHelpers} ${importBlock} export default (function() { @@ -79,7 +96,12 @@ function getEsWrapper(name: string, options: CompileOptions, imports: Node[], so }; } -function getAmdWrapper(name: string, options: CompileOptions, dependencies: Dependency[]) { +function getAmdWrapper( + name: string, + options: CompileOptions, + banner: string, + dependencies: Dependency[] +) { const sourceString = dependencies.length ? `[${dependencies.map(d => `"${removeExtension(d.source)}"`).join(', ')}], ` : ''; @@ -99,22 +121,41 @@ function getAmdWrapper(name: string, options: CompileOptions, dependencies: Depe }; } -function getCjsWrapper(name: string, options: CompileOptions, dependencies: Dependency[]) { +function getCjsWrapper( + name: string, + options: CompileOptions, + banner: string, + sharedPath: string, + helpers: { name: string, alias: string }[], + dependencies: Dependency[] +) { + const SHARED = '__shared'; + const helperBlock = helpers && ( + `var ${SHARED} = require(${JSON.stringify(sharedPath)});\n` + + helpers.map(helper => { + return `var ${helper.alias} = ${SHARED}.${helper.name};`; + }).join('\n') + ); + const requireBlock = dependencies .map(d => `var ${d.name} = require("${d.source}");`) .join('\n\n'); const intro = requireBlock ? deindent` + ${banner} "use strict"; + ${helperBlock} ${requireBlock} ${getCompatibilityStatements(dependencies)} ` : deindent` + ${banner} "use strict"; + ${helperBlock} `; const outro = `module.exports = ${name};` @@ -122,7 +163,12 @@ function getCjsWrapper(name: string, options: CompileOptions, dependencies: Depe return { intro, outro }; } -function getIifeWrapper(name: string, options: CompileOptions, dependencies: Dependency[]) { +function getIifeWrapper( + name: string, + options: CompileOptions, + banner: string, + dependencies: Dependency[] +) { if (!options.name) { throw new Error(`Missing required 'name' option for IIFE export`); } @@ -131,17 +177,25 @@ function getIifeWrapper(name: string, options: CompileOptions, dependencies: Dep return { intro: deindent` + ${banner} var ${options.name} = (function(${paramString(dependencies)}) { "use strict"; ${getCompatibilityStatements(dependencies)} `, - outro: `return ${name};\n\n}(${globals.join(', ')}));` + outro: deindent` + return ${name}; + }(${globals.join(', ')}));` }; } -function getUmdWrapper(name: string, options: CompileOptions, dependencies: Dependency[]) { +function getUmdWrapper( + name: string, + options: CompileOptions, + banner: string, + dependencies: Dependency[] +) { if (!options.name) { throw new Error(`Missing required 'name' option for UMD export`); } @@ -160,6 +214,7 @@ function getUmdWrapper(name: string, options: CompileOptions, dependencies: Depe return { intro: deindent` + ${banner} (function(global, factory) { typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(${cjsDeps}) : typeof define === "function" && define.amd ? define(${amdId}${amdDeps}factory) : @@ -177,18 +232,24 @@ function getUmdWrapper(name: string, options: CompileOptions, dependencies: Depe }; } -function getEvalWrapper(name: string, options: CompileOptions, dependencies: Dependency[]) { +function getEvalWrapper( + name: string, + options: CompileOptions, + banner: string, + dependencies: Dependency[] +) { const globals = getGlobals(dependencies, options); return { intro: deindent` (function (${paramString(dependencies)}) { "use strict"; + ${banner} ${getCompatibilityStatements(dependencies)} `, - outro: `return ${name};\n\n}(${globals.join(', ')}));` + outro: `return ${name};\n\n}(${globals.join(', ')}))` }; } diff --git a/src/index.ts b/src/index.ts index f2a2af1483..475cfcaceb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -61,7 +61,7 @@ export function create(source: string, _options: CompileOptions = {}) { } try { - return new Function('return ' + compiled.code)(); + return (0,eval)(compiled.code); } catch (err) { if (_options.onerror) { _options.onerror(err); diff --git a/src/interfaces.ts b/src/interfaces.ts index 97c7879ab6..2d876c6a9a 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -65,6 +65,8 @@ export interface GenerateOptions { name: string; format: ModuleFormat; banner?: string; + sharedPath?: string | boolean; + helpers?: { name: string, alias: string }[]; } export interface Visitor { diff --git a/test/js/samples/collapses-text-around-comments/expected-bundle.js b/test/js/samples/collapses-text-around-comments/expected-bundle.js index f144e884aa..29327e012f 100644 --- a/test/js/samples/collapses-text-around-comments/expected-bundle.js +++ b/test/js/samples/collapses-text-around-comments/expected-bundle.js @@ -190,6 +190,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -259,4 +260,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/collapses-text-around-comments/expected.js b/test/js/samples/collapses-text-around-comments/expected.js index 9e85f05595..2fba8e5f10 100644 --- a/test/js/samples/collapses-text-around-comments/expected.js +++ b/test/js/samples/collapses-text-around-comments/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createElement, createText, detachNode, init, insertNode, noop, proto, setAttribute } from "svelte/shared.js"; + +export default (function() { + var template = (function() { return { data: function () { @@ -70,4 +72,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/component-static/expected-bundle.js b/test/js/samples/component-static/expected-bundle.js index 2dbef4a1b1..4f1bed2001 100644 --- a/test/js/samples/component-static/expected-bundle.js +++ b/test/js/samples/component-static/expected-bundle.js @@ -166,6 +166,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -229,4 +230,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/component-static/expected.js b/test/js/samples/component-static/expected.js index e6f5d12eb7..ce6cbb836b 100644 --- a/test/js/samples/component-static/expected.js +++ b/test/js/samples/component-static/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, callAll, init, noop, proto } from "svelte/shared.js"; + +export default (function() { + var template = (function() { return { components: { @@ -64,4 +66,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/computed-collapsed-if/expected-bundle.js b/test/js/samples/computed-collapsed-if/expected-bundle.js index 752455d407..71142f31d0 100644 --- a/test/js/samples/computed-collapsed-if/expected-bundle.js +++ b/test/js/samples/computed-collapsed-if/expected-bundle.js @@ -166,6 +166,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -213,4 +214,7 @@ SvelteComponent.prototype._recompute = function _recompute(changed, state) { } }; -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/computed-collapsed-if/expected.js b/test/js/samples/computed-collapsed-if/expected.js index 097e5557c8..9f99533706 100644 --- a/test/js/samples/computed-collapsed-if/expected.js +++ b/test/js/samples/computed-collapsed-if/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, differs, init, noop, proto } from "svelte/shared.js"; + +export default (function() { + var template = (function() { return { computed: { @@ -48,4 +50,5 @@ SvelteComponent.prototype._recompute = function _recompute(changed, state) { } } -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/css-media-query/expected-bundle.js b/test/js/samples/css-media-query/expected-bundle.js index 8cc7e465d1..ca250398fa 100644 --- a/test/js/samples/css-media-query/expected-bundle.js +++ b/test/js/samples/css-media-query/expected-bundle.js @@ -186,6 +186,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function encapsulateStyles(node) { setAttribute(node, "svelte-2363328337", ""); @@ -241,4 +242,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/css-media-query/expected.js b/test/js/samples/css-media-query/expected.js index 11d1550542..a47c053601 100644 --- a/test/js/samples/css-media-query/expected.js +++ b/test/js/samples/css-media-query/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createElement, detachNode, init, insertNode, noop, proto, setAttribute } from "svelte/shared.js"; + +export default (function() { + function encapsulateStyles(node) { setAttribute(node, "svelte-2363328337", ""); } @@ -56,4 +58,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/css-shadow-dom-keyframes/expected-bundle.js b/test/js/samples/css-shadow-dom-keyframes/expected-bundle.js index 4761ffe62c..a060d65078 100644 --- a/test/js/samples/css-shadow-dom-keyframes/expected-bundle.js +++ b/test/js/samples/css-shadow-dom-keyframes/expected-bundle.js @@ -186,6 +186,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div, text; @@ -248,4 +249,7 @@ assign(SvelteComponent.prototype, proto, { } }); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/css-shadow-dom-keyframes/expected.js b/test/js/samples/css-shadow-dom-keyframes/expected.js index 4268c29877..2a34370c23 100644 --- a/test/js/samples/css-shadow-dom-keyframes/expected.js +++ b/test/js/samples/css-shadow-dom-keyframes/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createElement, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div, text; @@ -63,4 +65,5 @@ assign(SvelteComponent.prototype, proto, { } }); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/each-block-changed-check/expected-bundle.js b/test/js/samples/each-block-changed-check/expected-bundle.js index 5f73756b77..fcaf7c56d9 100644 --- a/test/js/samples/each-block-changed-check/expected-bundle.js +++ b/test/js/samples/each-block-changed-check/expected-bundle.js @@ -199,6 +199,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var text, p, text_1; @@ -352,4 +353,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/each-block-changed-check/expected.js b/test/js/samples/each-block-changed-check/expected.js index d69a80fcaf..156f9462c7 100644 --- a/test/js/samples/each-block-changed-check/expected.js +++ b/test/js/samples/each-block-changed-check/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createElement, createText, destroyEach, detachAfter, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var text, p, text_1; @@ -154,4 +156,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/event-handlers-custom/expected-bundle.js b/test/js/samples/event-handlers-custom/expected-bundle.js index f779357293..72d54f01e8 100644 --- a/test/js/samples/event-handlers-custom/expected-bundle.js +++ b/test/js/samples/event-handlers-custom/expected-bundle.js @@ -186,6 +186,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -250,4 +251,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, template.methods, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/event-handlers-custom/expected.js b/test/js/samples/event-handlers-custom/expected.js index eb6069e1d4..595138f596 100644 --- a/test/js/samples/event-handlers-custom/expected.js +++ b/test/js/samples/event-handlers-custom/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createElement, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + var template = (function() { return { methods: { @@ -65,4 +67,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, template.methods, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/if-block-no-update/expected-bundle.js b/test/js/samples/if-block-no-update/expected-bundle.js index d68a947cdb..e9ef3903eb 100644 --- a/test/js/samples/if-block-no-update/expected-bundle.js +++ b/test/js/samples/if-block-no-update/expected-bundle.js @@ -190,6 +190,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var if_block_anchor; @@ -294,4 +295,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/if-block-no-update/expected.js b/test/js/samples/if-block-no-update/expected.js index 38600d30d4..5cf14db148 100644 --- a/test/js/samples/if-block-no-update/expected.js +++ b/test/js/samples/if-block-no-update/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createComment, createElement, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var if_block_anchor; @@ -105,4 +107,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/if-block-simple/expected-bundle.js b/test/js/samples/if-block-simple/expected-bundle.js index 45ddba0cff..5674aaf3a0 100644 --- a/test/js/samples/if-block-simple/expected-bundle.js +++ b/test/js/samples/if-block-simple/expected-bundle.js @@ -190,6 +190,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var if_block_anchor; @@ -269,4 +270,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/if-block-simple/expected.js b/test/js/samples/if-block-simple/expected.js index 81a5ffc975..09bab7ebdf 100644 --- a/test/js/samples/if-block-simple/expected.js +++ b/test/js/samples/if-block-simple/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createComment, createElement, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var if_block_anchor; @@ -80,4 +82,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/inline-style-optimized-multiple/expected-bundle.js b/test/js/samples/inline-style-optimized-multiple/expected-bundle.js index 15972de8db..a4d325206e 100644 --- a/test/js/samples/inline-style-optimized-multiple/expected-bundle.js +++ b/test/js/samples/inline-style-optimized-multiple/expected-bundle.js @@ -182,6 +182,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div; @@ -233,4 +234,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/inline-style-optimized-multiple/expected.js b/test/js/samples/inline-style-optimized-multiple/expected.js index e246b76808..f4129ebb38 100644 --- a/test/js/samples/inline-style-optimized-multiple/expected.js +++ b/test/js/samples/inline-style-optimized-multiple/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, createElement, detachNode, init, insertNode, noop, proto, setStyle } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div; @@ -52,4 +54,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/inline-style-optimized-url/expected-bundle.js b/test/js/samples/inline-style-optimized-url/expected-bundle.js index b9fffb2f15..c0a9695ffe 100644 --- a/test/js/samples/inline-style-optimized-url/expected-bundle.js +++ b/test/js/samples/inline-style-optimized-url/expected-bundle.js @@ -182,6 +182,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div; @@ -228,4 +229,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/inline-style-optimized-url/expected.js b/test/js/samples/inline-style-optimized-url/expected.js index e979cefc37..32061f4d60 100644 --- a/test/js/samples/inline-style-optimized-url/expected.js +++ b/test/js/samples/inline-style-optimized-url/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, createElement, detachNode, init, insertNode, noop, proto, setStyle } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div; @@ -47,4 +49,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/inline-style-optimized/expected-bundle.js b/test/js/samples/inline-style-optimized/expected-bundle.js index 385aaa0c30..9e2e87fefa 100644 --- a/test/js/samples/inline-style-optimized/expected-bundle.js +++ b/test/js/samples/inline-style-optimized/expected-bundle.js @@ -182,6 +182,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div; @@ -228,4 +229,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/inline-style-optimized/expected.js b/test/js/samples/inline-style-optimized/expected.js index 52542ce3ba..b5d35f85f5 100644 --- a/test/js/samples/inline-style-optimized/expected.js +++ b/test/js/samples/inline-style-optimized/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, createElement, detachNode, init, insertNode, noop, proto, setStyle } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div; @@ -47,4 +49,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/inline-style-unoptimized/expected-bundle.js b/test/js/samples/inline-style-unoptimized/expected-bundle.js index f031e6c0e2..032ad03c66 100644 --- a/test/js/samples/inline-style-unoptimized/expected-bundle.js +++ b/test/js/samples/inline-style-unoptimized/expected-bundle.js @@ -182,6 +182,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div, text, div_1, div_1_style_value; @@ -239,4 +240,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/inline-style-unoptimized/expected.js b/test/js/samples/inline-style-unoptimized/expected.js index 081c497f9e..b45ff132d2 100644 --- a/test/js/samples/inline-style-unoptimized/expected.js +++ b/test/js/samples/inline-style-unoptimized/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, createElement, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div, text, div_1, div_1_style_value; @@ -58,4 +60,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/input-without-blowback-guard/expected-bundle.js b/test/js/samples/input-without-blowback-guard/expected-bundle.js index 99ce19c0bf..f6e03fb001 100644 --- a/test/js/samples/input-without-blowback-guard/expected-bundle.js +++ b/test/js/samples/input-without-blowback-guard/expected-bundle.js @@ -186,6 +186,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var input; @@ -239,4 +240,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/input-without-blowback-guard/expected.js b/test/js/samples/input-without-blowback-guard/expected.js index e5f2d4ff21..66285864ab 100644 --- a/test/js/samples/input-without-blowback-guard/expected.js +++ b/test/js/samples/input-without-blowback-guard/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { addListener, assign, createElement, detachNode, init, insertNode, proto, removeListener } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var input; @@ -54,4 +56,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/legacy-input-type/expected-bundle.js b/test/js/samples/legacy-input-type/expected-bundle.js index 35a5253a26..80875dada3 100644 --- a/test/js/samples/legacy-input-type/expected-bundle.js +++ b/test/js/samples/legacy-input-type/expected-bundle.js @@ -184,6 +184,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var input; @@ -226,4 +227,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/legacy-input-type/expected.js b/test/js/samples/legacy-input-type/expected.js index ccd0bc4a5f..419a68fc55 100644 --- a/test/js/samples/legacy-input-type/expected.js +++ b/test/js/samples/legacy-input-type/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, createElement, detachNode, init, insertNode, noop, proto, setInputType } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var input; @@ -43,4 +45,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/legacy-quote-class/expected-bundle.js b/test/js/samples/legacy-quote-class/expected-bundle.js index a3edb24252..a0c302b929 100644 --- a/test/js/samples/legacy-quote-class/expected-bundle.js +++ b/test/js/samples/legacy-quote-class/expected-bundle.js @@ -201,6 +201,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div; @@ -253,4 +254,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/legacy-quote-class/expected.js b/test/js/samples/legacy-quote-class/expected.js index 984e7e7c6d..05d8d6473d 100644 --- a/test/js/samples/legacy-quote-class/expected.js +++ b/test/js/samples/legacy-quote-class/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, children, claimElement, createElement, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div; @@ -53,4 +55,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/media-bindings/expected-bundle.js b/test/js/samples/media-bindings/expected-bundle.js index 08e8a09d7c..db93324113 100644 --- a/test/js/samples/media-bindings/expected-bundle.js +++ b/test/js/samples/media-bindings/expected-bundle.js @@ -194,6 +194,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var audio, audio_updating = false, audio_animationframe, audio_paused_value = true; @@ -322,4 +323,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/media-bindings/expected.js b/test/js/samples/media-bindings/expected.js index 05ab3147c3..527213251c 100644 --- a/test/js/samples/media-bindings/expected.js +++ b/test/js/samples/media-bindings/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { addListener, assign, callAll, createElement, detachNode, init, insertNode, proto, removeListener, timeRangesToArray } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var audio, audio_updating = false, audio_animationframe, audio_paused_value = true; @@ -129,4 +131,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/non-imported-component/expected-bundle.js b/test/js/samples/non-imported-component/expected-bundle.js index 817ab2c4f8..d60db003bf 100644 --- a/test/js/samples/non-imported-component/expected-bundle.js +++ b/test/js/samples/non-imported-component/expected-bundle.js @@ -180,6 +180,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -254,4 +255,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/non-imported-component/expected.js b/test/js/samples/non-imported-component/expected.js index b2f77857c4..8d8759c059 100644 --- a/test/js/samples/non-imported-component/expected.js +++ b/test/js/samples/non-imported-component/expected.js @@ -1,8 +1,8 @@ -import Imported from 'Imported.html'; - /* generated by Svelte vX.Y.Z */ - import { assign, callAll, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; +import Imported from 'Imported.html'; + +export default (function() { var template = (function() { return { @@ -77,4 +77,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/onrender-onteardown-rewritten/expected-bundle.js b/test/js/samples/onrender-onteardown-rewritten/expected-bundle.js index 2bec66e3e1..058818d6d5 100644 --- a/test/js/samples/onrender-onteardown-rewritten/expected-bundle.js +++ b/test/js/samples/onrender-onteardown-rewritten/expected-bundle.js @@ -166,6 +166,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -216,4 +217,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/onrender-onteardown-rewritten/expected.js b/test/js/samples/onrender-onteardown-rewritten/expected.js index 6eb6b55a1e..fb02f55421 100644 --- a/test/js/samples/onrender-onteardown-rewritten/expected.js +++ b/test/js/samples/onrender-onteardown-rewritten/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, callAll, init, noop, proto } from "svelte/shared.js"; + +export default (function() { + var template = (function() { return { // this test should be removed in v2 @@ -51,4 +53,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/setup-method/expected-bundle.js b/test/js/samples/setup-method/expected-bundle.js index 0752ea7839..1786cee000 100644 --- a/test/js/samples/setup-method/expected-bundle.js +++ b/test/js/samples/setup-method/expected-bundle.js @@ -166,6 +166,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { var template = (function() { return { @@ -217,4 +218,7 @@ assign(SvelteComponent.prototype, template.methods, proto); template.setup(SvelteComponent); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/setup-method/expected.js b/test/js/samples/setup-method/expected.js index dcf0b20e8d..009b432695 100644 --- a/test/js/samples/setup-method/expected.js +++ b/test/js/samples/setup-method/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { assign, init, noop, proto } from "svelte/shared.js"; + +export default (function() { + var template = (function() { return { methods: { @@ -52,4 +54,5 @@ assign(SvelteComponent.prototype, template.methods, proto); template.setup(SvelteComponent); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file diff --git a/test/js/samples/use-elements-as-anchors/expected-bundle.js b/test/js/samples/use-elements-as-anchors/expected-bundle.js index 5a9b918376..b3fabc750c 100644 --- a/test/js/samples/use-elements-as-anchors/expected-bundle.js +++ b/test/js/samples/use-elements-as-anchors/expected-bundle.js @@ -190,6 +190,7 @@ var proto = { }; /* generated by Svelte vX.Y.Z */ +var _actual = (function() { function create_main_fragment(state, component) { var div, text, p, text_1, text_2, text_3, text_4, p_1, text_5, text_6, text_8, if_block_4_anchor; @@ -457,4 +458,7 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; +return SvelteComponent; +}()); + +export default _actual; diff --git a/test/js/samples/use-elements-as-anchors/expected.js b/test/js/samples/use-elements-as-anchors/expected.js index 01d21caa1e..4565988e2d 100644 --- a/test/js/samples/use-elements-as-anchors/expected.js +++ b/test/js/samples/use-elements-as-anchors/expected.js @@ -1,7 +1,9 @@ /* generated by Svelte vX.Y.Z */ - import { appendNode, assign, createComment, createElement, createText, detachNode, init, insertNode, noop, proto } from "svelte/shared.js"; + +export default (function() { + function create_main_fragment(state, component) { var div, text, p, text_1, text_2, text_3, text_4, p_1, text_5, text_6, text_8, if_block_4_anchor; @@ -268,4 +270,5 @@ function SvelteComponent(options) { assign(SvelteComponent.prototype, proto); -export default SvelteComponent; \ No newline at end of file +return SvelteComponent; +}()); \ No newline at end of file