mirror of https://github.com/sveltejs/svelte
				
				
				
			
							parent
							
								
									c494c05ebf
								
							
						
					
					
						commit
						03dc1cab8c
					
				| @ -1,131 +0,0 @@ | |||||||
| import * as path from 'path'; |  | ||||||
| import * as fs from 'fs'; |  | ||||||
| import * as svelte from 'svelte'; |  | ||||||
| import error from './error.js'; |  | ||||||
| 
 |  | ||||||
| function mkdirp(dir) { |  | ||||||
| 	const parent = path.dirname(dir); |  | ||||||
| 	if (dir === parent) return; |  | ||||||
| 
 |  | ||||||
| 	mkdirp(parent); |  | ||||||
| 	if (!fs.existsSync(dir)) fs.mkdirSync(dir); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export function compile(input, opts) { |  | ||||||
| 	if (opts._.length > 0) { |  | ||||||
| 		error(`Can only compile a single file or directory`); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	const output = opts.output; |  | ||||||
| 
 |  | ||||||
| 	const stats = fs.statSync(input); |  | ||||||
| 	const isDir = stats.isDirectory(); |  | ||||||
| 
 |  | ||||||
| 	if (isDir) { |  | ||||||
| 		if (!output) { |  | ||||||
| 			error(`You must specify an --output (-o) option when compiling a directory of files`); |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		if (opts.name || opts.amdId) { |  | ||||||
| 			error(`Cannot specify --${opts.name ? 'name' : 'amdId'} when compiling a directory`); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	const options = { |  | ||||||
| 		name: opts.name, |  | ||||||
| 		format: opts.format, |  | ||||||
| 		css: opts.css !== false, |  | ||||||
| 		dev: opts.dev, |  | ||||||
| 		immutable: opts.immutable, |  | ||||||
| 		generate: opts.generate || 'dom', |  | ||||||
| 		customElement: opts.customElement, |  | ||||||
| 		sveltePath: opts.sveltePath |  | ||||||
| 	}; |  | ||||||
| 
 |  | ||||||
| 	if (isDir) { |  | ||||||
| 		mkdirp(output); |  | ||||||
| 		compileDirectory(input, output, options, opts.sourcemap); |  | ||||||
| 	} else { |  | ||||||
| 		compileFile(input, output, options, opts.sourcemap); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function compileDirectory(input, output, options, sourcemap) { |  | ||||||
| 	fs.readdirSync(input).forEach(file => { |  | ||||||
| 		const src = path.resolve(input, file); |  | ||||||
| 		const dest = path.resolve(output, file); |  | ||||||
| 
 |  | ||||||
| 		if (path.extname(file) === '.html') { |  | ||||||
| 			compileFile( |  | ||||||
| 				src, |  | ||||||
| 				dest.substring(0, dest.lastIndexOf('.html')) + '.js', |  | ||||||
| 				options, |  | ||||||
| 				sourcemap |  | ||||||
| 			); |  | ||||||
| 		} else { |  | ||||||
| 			const stats = fs.statSync(src); |  | ||||||
| 			if (stats.isDirectory()) { |  | ||||||
| 				compileDirectory(src, dest, options, sourcemap); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| let SOURCEMAPPING_URL = 'sourceMa'; |  | ||||||
| SOURCEMAPPING_URL += 'ppingURL'; |  | ||||||
| 
 |  | ||||||
| function compileFile(input, output, options, sourcemap) { |  | ||||||
| 	console.error(`compiling ${path.relative(process.cwd(), input)}...`); // eslint-disable-line no-console
 |  | ||||||
| 
 |  | ||||||
| 	options = Object.assign({}, options); |  | ||||||
| 	if (!options.name) options.name = getName(input); |  | ||||||
| 
 |  | ||||||
| 	options.filename = input; |  | ||||||
| 	options.outputFilename = output; |  | ||||||
| 
 |  | ||||||
| 	const inline = sourcemap === 'inline'; |  | ||||||
| 
 |  | ||||||
| 	let source = fs.readFileSync(input, 'utf-8'); |  | ||||||
| 	if (source[0] === 0xfeff) source = source.slice(1); |  | ||||||
| 
 |  | ||||||
| 	let compiled; |  | ||||||
| 
 |  | ||||||
| 	try { |  | ||||||
| 		compiled = svelte.compile(source, options); |  | ||||||
| 	} catch (err) { |  | ||||||
| 		error(err); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	const { js, warnings } = compiled; |  | ||||||
| 
 |  | ||||||
| 	warnings.forEach(warning => console.warn(warning.toString())); |  | ||||||
| 
 |  | ||||||
| 	if (sourcemap) { |  | ||||||
| 		js.code += `\n//# ${SOURCEMAPPING_URL}=${inline || !output |  | ||||||
| 			? js.map.toUrl() |  | ||||||
| 			: `${path.basename(output)}.map`}\n`;
 |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if (output) { |  | ||||||
| 		const outputDir = path.dirname(output); |  | ||||||
| 		mkdirp(outputDir); |  | ||||||
| 		fs.writeFileSync(output, js.code); |  | ||||||
| 		console.error(`wrote ${path.relative(process.cwd(), output)}`); // eslint-disable-line no-console
 |  | ||||||
| 		if (sourcemap && !inline) { |  | ||||||
| 			fs.writeFileSync(`${output}.map`, js.map); |  | ||||||
| 			console.error(`wrote ${path.relative(process.cwd(), `${output}.map`)}`); // eslint-disable-line no-console
 |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		process.stdout.write(js.code); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function getName(input) { |  | ||||||
| 	return path |  | ||||||
| 		.basename(input) |  | ||||||
| 		.replace(path.extname(input), '') |  | ||||||
| 		.replace(/[^a-zA-Z_$0-9]+/g, '_') |  | ||||||
| 		.replace(/^_/, '') |  | ||||||
| 		.replace(/_$/, '') |  | ||||||
| 		.replace(/^(\d)/, '_$1'); |  | ||||||
| } |  | ||||||
| @ -1,17 +0,0 @@ | |||||||
| import c from 'kleur'; |  | ||||||
| 
 |  | ||||||
| function stderr(msg) { |  | ||||||
| 	console.error(msg); // eslint-disable-line no-console
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export default function error(err) { |  | ||||||
| 	stderr(c.red(err.message || err)); |  | ||||||
| 
 |  | ||||||
| 	if (err.frame) { |  | ||||||
| 		stderr(err.frame); |  | ||||||
| 	} else if (err.stack) { |  | ||||||
| 		stderr(c.gray(err.stack)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	process.exit(1); |  | ||||||
| } |  | ||||||
| @ -1,30 +0,0 @@ | |||||||
| import sade from 'sade'; |  | ||||||
| import * as pkg from '../../package.json'; |  | ||||||
| 
 |  | ||||||
| const prog = sade('svelte').version(pkg.version); |  | ||||||
| 
 |  | ||||||
| prog |  | ||||||
| 	.command('compile <input>') |  | ||||||
| 
 |  | ||||||
| 	.option('-o, --output', 'Output (if absent, prints to stdout)') |  | ||||||
| 	.option('-f, --format', 'Type of output (cjs or esm)', 'esm') |  | ||||||
| 	.option('-n, --name', 'Name for IIFE/UMD export (inferred from filename by default)') |  | ||||||
| 	.option('-m, --sourcemap', 'Generate sourcemap (`-m inline` for inline map)') |  | ||||||
| 	.option('-d, --dev', 'Add dev mode warnings and errors') |  | ||||||
| 	.option('--generate', 'Change generate format between `dom` and `ssr`') |  | ||||||
| 	.option('--no-css', `Don't include CSS (useful with SSR)`) |  | ||||||
| 	.option('--immutable', 'Support immutable data structures') |  | ||||||
| 	.option('--shared', 'Don\'t include shared helpers') |  | ||||||
| 	.option('--customElement', 'Generate a custom element') |  | ||||||
| 
 |  | ||||||
| 	.example('compile App.html > App.js') |  | ||||||
| 	.example('compile src -o dest') |  | ||||||
| 	.example('compile -f umd MyComponent.html > MyComponent.js') |  | ||||||
| 
 |  | ||||||
| 	.action((input, opts) => { |  | ||||||
| 		import('./compile').then(({ compile }) => { |  | ||||||
| 			compile(input, opts); |  | ||||||
| 		}); |  | ||||||
| 	}) |  | ||||||
| 
 |  | ||||||
| 	.parse(process.argv); |  | ||||||
| @ -1,84 +0,0 @@ | |||||||
| const fs = require('fs'); |  | ||||||
| const path = require('path'); |  | ||||||
| const assert = require('assert'); |  | ||||||
| const glob = require('tiny-glob/sync.js'); |  | ||||||
| const shell = require("shelljs"); |  | ||||||
| 
 |  | ||||||
| const cli = path.resolve(__dirname, "../../cli/index.js"); |  | ||||||
| 
 |  | ||||||
| function normalize(str) { |  | ||||||
| 	return str |  | ||||||
| 		.replace(/^\s+$/gm, '') |  | ||||||
| 		.replace( |  | ||||||
| 			/\/\*(.*?)generated by Svelte v[.\d]+/, |  | ||||||
| 			(_, path) => `/*${path.replace(/\\/g, '/')}generated by Svelte vx.y.z` |  | ||||||
| 		) |  | ||||||
| 		.trim(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const cwd = process.cwd(); |  | ||||||
| 
 |  | ||||||
| // TODO figure out what to do with the CLI
 |  | ||||||
| describe.skip('cli', function() { |  | ||||||
| 	this.timeout(10000); |  | ||||||
| 
 |  | ||||||
| 	afterEach(() => { |  | ||||||
| 		process.chdir(cwd); |  | ||||||
| 	}); |  | ||||||
| 
 |  | ||||||
| 	fs.readdirSync('test/cli/samples').forEach(dir => { |  | ||||||
| 		if (dir[0] === '.') return; |  | ||||||
| 
 |  | ||||||
| 		// append .solo to test dir to only run that test
 |  | ||||||
| 		const solo = /\.solo$/.test(dir); |  | ||||||
| 
 |  | ||||||
| 		(solo ? it.only : it)(dir, done => { |  | ||||||
| 			process.chdir(`${__dirname}/samples/${dir}`); |  | ||||||
| 
 |  | ||||||
| 			const command = fs.readFileSync('command.sh', 'utf-8'); |  | ||||||
| 
 |  | ||||||
| 			shell.mkdir("-p", "actual"); |  | ||||||
| 			shell.rm("-rf", "actual/*"); |  | ||||||
| 			const { commandErr } = shell.exec( |  | ||||||
| 				command.replace(/^svelte /, `node ${cli} `) |  | ||||||
| 			); |  | ||||||
| 
 |  | ||||||
| 			if (commandErr) { |  | ||||||
| 				done(commandErr); |  | ||||||
| 				return; |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			const actual = glob('**', { cwd: 'actual', filesOnly: true }) |  | ||||||
| 				.map(file => { |  | ||||||
| 					return { |  | ||||||
| 						file, |  | ||||||
| 						contents: normalize(fs.readFileSync(`actual/${file}`, 'utf-8')) |  | ||||||
| 					}; |  | ||||||
| 				}); |  | ||||||
| 
 |  | ||||||
| 			const expected = glob('**', { cwd: 'expected', filesOnly: true }) |  | ||||||
| 				.map(file => { |  | ||||||
| 					return { |  | ||||||
| 						file, |  | ||||||
| 						contents: normalize( |  | ||||||
| 							fs.readFileSync(`expected/${file}`, 'utf-8') |  | ||||||
| 						) |  | ||||||
| 					}; |  | ||||||
| 				}); |  | ||||||
| 
 |  | ||||||
| 			actual.forEach((a, i) => { |  | ||||||
| 				const e = expected[i]; |  | ||||||
| 
 |  | ||||||
| 				assert.equal(a.file, e.file, 'File list mismatch'); |  | ||||||
| 
 |  | ||||||
| 				if (/\.map$/.test(a.file)) { |  | ||||||
| 					assert.deepEqual(JSON.parse(a.contents), JSON.parse(e.contents)); |  | ||||||
| 				} else { |  | ||||||
| 					assert.equal(a.contents, e.contents); |  | ||||||
| 				} |  | ||||||
| 			}); |  | ||||||
| 
 |  | ||||||
| 			done(); |  | ||||||
| 		}); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte > actual/Main.js |  | ||||||
| @ -1,191 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "Hello world!"; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <p>Hello world!</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte --customElement > actual/Main.js |  | ||||||
| @ -1,212 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "Hello world!"; |  | ||||||
| 			this.c = noop; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| class Main extends HTMLElement { |  | ||||||
| 	constructor(options = {}) { |  | ||||||
| 		super(); |  | ||||||
| 		init(this, options); |  | ||||||
| 		this._state = assign({}, options.data); |  | ||||||
| 		this._intro = true; |  | ||||||
| 
 |  | ||||||
| 		this.attachShadow({ mode: 'open' }); |  | ||||||
| 
 |  | ||||||
| 		this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._fragment.m(this.shadowRoot, null); |  | ||||||
| 
 |  | ||||||
| 		if (options.target) this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	static get observedAttributes() { |  | ||||||
| 		return []; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	attributeChangedCallback(attr, oldValue, newValue) { |  | ||||||
| 		this.set({ [attr]: newValue }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| assign(Main.prototype, { |  | ||||||
| 	_mount(target, anchor) { |  | ||||||
| 		target.insertBefore(this, anchor); |  | ||||||
| 	} |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| customElements.define("my-element", Main); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| <svelte:options tag="my-element"/> |  | ||||||
| 
 |  | ||||||
| <p>Hello world!</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte -d > actual/Main.js |  | ||||||
| @ -1,227 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte v2.13.4 */ |  | ||||||
| 
 |  | ||||||
| const file = "src/Main.svelte"; |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c: function create() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "Hello world!"; |  | ||||||
| 			addLoc(p, file, 0, 0, 0); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m: function mount(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d: function destroy(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	this._debugName = '<Main>'; |  | ||||||
| 	if (!options || (!options.target && !options.root)) { |  | ||||||
| 		throw new Error("'target' is a required option"); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		if (options.hydrate) throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroyDev, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: setDev, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._checkReadOnly = function _checkReadOnly(newState) { |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function addLoc(element, file, line, column, char) { |  | ||||||
| 	element.__svelte_meta = { |  | ||||||
| 		loc: { file, line, column, char } |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroyDev(detach) { |  | ||||||
| 	destroy.call(this, detach); |  | ||||||
| 	this.destroy = function() { |  | ||||||
| 		console.warn('Component was already destroyed'); |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function setDev(newState) { |  | ||||||
| 	if (typeof newState !== 'object') { |  | ||||||
| 		throw new Error( |  | ||||||
| 			this._debugName + '.set was called without an object of data key-values to update.' |  | ||||||
| 		); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	this._checkReadOnly(newState); |  | ||||||
| 	set.call(this, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <p>Hello world!</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src -m -o actual |  | ||||||
| @ -1,186 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| import Widget from './Widget.svelte'; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 
 |  | ||||||
| 	var widget = new Widget({ |  | ||||||
| 		root: component.root, |  | ||||||
| 		store: component.store |  | ||||||
| 	}); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			widget._fragment.c(); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			widget._mount(target, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			widget.destroy(detach); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 
 |  | ||||||
| 		flush(this); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| //# sourceMappingURL=Main.js.map
 |  | ||||||
| @ -1 +0,0 @@ | |||||||
| {"version":3,"file":"Main.js","sources":["../src/Main.svelte"],"sourcesContent":["<Widget/>\n\n<script>\n\timport Widget from './Widget.svelte';\n\n\texport default {\n\t\tcomponents: {\n\t\t\tWidget\n\t\t}\n\t};\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |  | ||||||
| @ -1,192 +0,0 @@ | |||||||
| /* src/Widget.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "widget"; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Widget(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Widget.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Widget.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Widget; |  | ||||||
| //# sourceMappingURL=Widget.js.map
 |  | ||||||
| @ -1 +0,0 @@ | |||||||
| {"version":3,"file":"Widget.js","sources":["../src/Widget.svelte"],"sourcesContent":["<p>widget</p>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |  | ||||||
| @ -1,5 +0,0 @@ | |||||||
| <script> |  | ||||||
| 	import Widget from './Widget.svelte'; |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <Widget/> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <p>widget</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src -o actual |  | ||||||
| @ -1,185 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| import Widget from './widget/Widget.svelte'; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 
 |  | ||||||
| 	var widget = new Widget({ |  | ||||||
| 		root: component.root, |  | ||||||
| 		store: component.store |  | ||||||
| 	}); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			widget._fragment.c(); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			widget._mount(target, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			widget.destroy(detach); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 
 |  | ||||||
| 		flush(this); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| @ -1,191 +0,0 @@ | |||||||
| /* src/widget/Widget.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "widget"; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Widget(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Widget.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Widget.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Widget; |  | ||||||
| @ -1,5 +0,0 @@ | |||||||
| <script> |  | ||||||
| 	import Widget from './widget/Widget.svelte'; |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <Widget/> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <p>widget</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src -o actual |  | ||||||
| @ -1,185 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| import Widget from './Widget.svelte'; |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 
 |  | ||||||
| 	var widget = new Widget({ |  | ||||||
| 		root: component.root, |  | ||||||
| 		store: component.store |  | ||||||
| 	}); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			widget._fragment.c(); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			widget._mount(target, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			widget.destroy(detach); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 
 |  | ||||||
| 		flush(this); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| @ -1,191 +0,0 @@ | |||||||
| /* src/Widget.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "widget"; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Widget(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Widget.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Widget.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Widget; |  | ||||||
| @ -1,5 +0,0 @@ | |||||||
| <script> |  | ||||||
| 	import Widget from './Widget.svelte'; |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <Widget/> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <p>widget</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte -f iife -g the-answer:theAnswer > actual/Main.js |  | ||||||
| @ -1,219 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| var Main = (function(answer) { "use strict"; |  | ||||||
| 	answer = (answer && answer.__esModule) ? answer["default"] : answer; |  | ||||||
| 
 |  | ||||||
| 	function data() { |  | ||||||
| 	return { |  | ||||||
| 		answer: answer |  | ||||||
| 	}; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| 	function create_main_fragment(component, ctx) { |  | ||||||
| 		var p, text0, text1; |  | ||||||
| 
 |  | ||||||
| 		return { |  | ||||||
| 			c() { |  | ||||||
| 				p = createElement("p"); |  | ||||||
| 				text0 = createText("The answer is "); |  | ||||||
| 				text1 = createText(ctx.answer); |  | ||||||
| 			}, |  | ||||||
| 
 |  | ||||||
| 			m(target, anchor) { |  | ||||||
| 				insert(target, p, anchor); |  | ||||||
| 				append(p, text0); |  | ||||||
| 				append(p, text1); |  | ||||||
| 			}, |  | ||||||
| 
 |  | ||||||
| 			p(changed, ctx) { |  | ||||||
| 				if (changed.answer) { |  | ||||||
| 					setData(text1, ctx.answer); |  | ||||||
| 				} |  | ||||||
| 			}, |  | ||||||
| 
 |  | ||||||
| 			d(detach) { |  | ||||||
| 				if (detach) { |  | ||||||
| 					detachNode(p); |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		}; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function Main(options) { |  | ||||||
| 		init(this, options); |  | ||||||
| 		this._state = assign(data(), options.data); |  | ||||||
| 		this._intro = true; |  | ||||||
| 
 |  | ||||||
| 		this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 		if (options.target) { |  | ||||||
| 			this._fragment.c(); |  | ||||||
| 			this._mount(options.target, options.anchor); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	assign(Main.prototype, { |  | ||||||
| 	 	destroy: destroy, |  | ||||||
| 	 	get: get, |  | ||||||
| 	 	fire: fire, |  | ||||||
| 	 	on: on, |  | ||||||
| 	 	set: set, |  | ||||||
| 	 	_set: _set, |  | ||||||
| 	 	_stage: _stage, |  | ||||||
| 	 	_mount: _mount, |  | ||||||
| 	 	_differs: _differs |  | ||||||
| 	 }); |  | ||||||
| 
 |  | ||||||
| 	Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| 	function createElement(name) { |  | ||||||
| 		return document.createElement(name); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function createText(data) { |  | ||||||
| 		return document.createTextNode(data); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function insert(target, node, anchor) { |  | ||||||
| 		target.insertBefore(node, anchor); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function append(target, node) { |  | ||||||
| 		target.appendChild(node); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function setData(text, data) { |  | ||||||
| 		text.data = '' + data; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function detachNode(node) { |  | ||||||
| 		node.parentNode.removeChild(node); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function init(component, options) { |  | ||||||
| 		component._handlers = blankObject(); |  | ||||||
| 		component._slots = blankObject(); |  | ||||||
| 		component._bind = options._bind; |  | ||||||
| 		component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 		component.options = options; |  | ||||||
| 		component.root = options.root || component; |  | ||||||
| 		component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 		if (!options.root) { |  | ||||||
| 			component._beforecreate = []; |  | ||||||
| 			component._oncreate = []; |  | ||||||
| 			component._aftercreate = []; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function assign(tar, src) { |  | ||||||
| 		for (var k in src) tar[k] = src[k]; |  | ||||||
| 		return tar; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function destroy(detach) { |  | ||||||
| 		this.destroy = noop; |  | ||||||
| 		this.fire('destroy'); |  | ||||||
| 		this.set = noop; |  | ||||||
| 
 |  | ||||||
| 		this._fragment.d(detach !== false); |  | ||||||
| 		this._fragment = null; |  | ||||||
| 		this._state = {}; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function get() { |  | ||||||
| 		return this._state; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function fire(eventName, data) { |  | ||||||
| 		var handlers = |  | ||||||
| 			eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 		if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 		for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 			var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 			if (!handler.__calling) { |  | ||||||
| 				try { |  | ||||||
| 					handler.__calling = true; |  | ||||||
| 					handler.call(this, data); |  | ||||||
| 				} finally { |  | ||||||
| 					handler.__calling = false; |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function on(eventName, handler) { |  | ||||||
| 		var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 		handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 		return { |  | ||||||
| 			cancel: function() { |  | ||||||
| 				var index = handlers.indexOf(handler); |  | ||||||
| 				if (~index) handlers.splice(index, 1); |  | ||||||
| 			} |  | ||||||
| 		}; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function set(newState) { |  | ||||||
| 		this._set(assign({}, newState)); |  | ||||||
| 		if (this.root._lock) return; |  | ||||||
| 		flush(this.root); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function _set(newState) { |  | ||||||
| 		var oldState = this._state, |  | ||||||
| 			changed = {}, |  | ||||||
| 			dirty = false; |  | ||||||
| 
 |  | ||||||
| 		newState = assign(this._staged, newState); |  | ||||||
| 		this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 		for (var key in newState) { |  | ||||||
| 			if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 		} |  | ||||||
| 		if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 		this._state = assign(assign({}, oldState), newState); |  | ||||||
| 		this._recompute(changed, this._state); |  | ||||||
| 		if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 		if (this._fragment) { |  | ||||||
| 			this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 			this._fragment.p(changed, this._state); |  | ||||||
| 			this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function _stage(newState) { |  | ||||||
| 		assign(this._staged, newState); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function _mount(target, anchor) { |  | ||||||
| 		this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function _differs(a, b) { |  | ||||||
| 		return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function noop() {} |  | ||||||
| 
 |  | ||||||
| 	function blankObject() { |  | ||||||
| 		return Object.create(null); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function flush(component) { |  | ||||||
| 		component._lock = true; |  | ||||||
| 		callAll(component._beforecreate); |  | ||||||
| 		callAll(component._oncreate); |  | ||||||
| 		callAll(component._aftercreate); |  | ||||||
| 		component._lock = false; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	function callAll(fns) { |  | ||||||
| 		while (fns && fns.length) fns.shift()(); |  | ||||||
| 	} |  | ||||||
| 	return Main; |  | ||||||
| }(theAnswer)); |  | ||||||
| @ -1,5 +0,0 @@ | |||||||
| <script> |  | ||||||
| 	import answer from 'the-answer'; |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <p>The answer is {answer}</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte -m inline -o actual/Main.js |  | ||||||
| @ -1,192 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "Hello world!"; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbi5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL01haW4uaHRtbCJdLCJzb3VyY2VzQ29udGVudCI6WyI8cD5IZWxsbyB3b3JsZCE8L3A+XG5cbjxzY3JpcHQ+XG5cdGV4cG9ydCBkZWZhdWx0IHtcblx0XHRvbnJlbmRlciAoKSB7XG5cdFx0XHRjb25zb2xlLmxvZyggJ2hlcmUnICk7XG5cdFx0fVxuXHR9O1xuPC9zY3JpcHQ+Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
 |  | ||||||
| @ -1,9 +0,0 @@ | |||||||
| <script> |  | ||||||
| 	import { onMount } from 'svelte'; |  | ||||||
| 
 |  | ||||||
| 	onMount(() => { |  | ||||||
| 		console.log('here'); |  | ||||||
| 	}); |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <p>Hello world!</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte -m -o actual/Main.js |  | ||||||
| @ -1,192 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var p; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			p = createElement("p"); |  | ||||||
| 			p.textContent = "Hello world!"; |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, p, anchor); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p: noop, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(p); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign({}, options.data); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| //# sourceMappingURL=Main.js.map
 |  | ||||||
| @ -1 +0,0 @@ | |||||||
| {"version":3,"file":"Main.js","sources":["../src/Main.svelte"],"sourcesContent":["<p>Hello world!</p>\n\n<script>\n\texport default {\n\t\tonrender () {\n\t\t\tconsole.log( 'here' );\n\t\t}\n\t};\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} |  | ||||||
| @ -1,9 +0,0 @@ | |||||||
| <script> |  | ||||||
| 	import { onMount } from 'svelte'; |  | ||||||
| 
 |  | ||||||
| 	onMount(() => { |  | ||||||
| 		console.log('here'); |  | ||||||
| 	}); |  | ||||||
| </script> |  | ||||||
| 
 |  | ||||||
| <p>Hello world!</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile --generate ssr src/Main.svelte > actual/Main.js |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| 
 |  | ||||||
| var Main = {}; |  | ||||||
| 
 |  | ||||||
| Main.filename = "src/Main.svelte"; |  | ||||||
| 
 |  | ||||||
| Main.data = function() { |  | ||||||
| 	return {}; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| Main.render = function(state, options = {}) { |  | ||||||
| 	var components = new Set(); |  | ||||||
| 
 |  | ||||||
| 	function addComponent(component) { |  | ||||||
| 		components.add(component); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	var result = { head: '', addComponent }; |  | ||||||
| 	var html = Main._render(result, state, options); |  | ||||||
| 
 |  | ||||||
| 	var cssCode = Array.from(components).map(c => c.css && c.css.code).filter(Boolean).join('\n'); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		html, |  | ||||||
| 		head: result.head, |  | ||||||
| 		css: { code: cssCode, map: null }, |  | ||||||
| 		toString() { |  | ||||||
| 			return html; |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Main._render = function(__result, ctx, options) { |  | ||||||
| 	__result.addComponent(Main); |  | ||||||
| 
 |  | ||||||
| 	ctx = Object.assign({}, ctx); |  | ||||||
| 
 |  | ||||||
| 	return `<p>Hello world!</p>`; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| Main.css = { |  | ||||||
| 	code: '', |  | ||||||
| 	map: null |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| var warned = false; |  | ||||||
| 
 |  | ||||||
| module.exports = Main; |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <p>Hello world!</p> |  | ||||||
| @ -1 +0,0 @@ | |||||||
| svelte compile src/Main.svelte --store > actual/Main.js |  | ||||||
| @ -1,217 +0,0 @@ | |||||||
| /* src/Main.svelte generated by Svelte vx.y.z */ |  | ||||||
| 
 |  | ||||||
| function create_main_fragment(component, ctx) { |  | ||||||
| 	var h1, text0, text1; |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		c() { |  | ||||||
| 			h1 = createElement("h1"); |  | ||||||
| 			text0 = createText("Hello "); |  | ||||||
| 			text1 = createText(ctx.$name); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		m(target, anchor) { |  | ||||||
| 			insert(target, h1, anchor); |  | ||||||
| 			append(h1, text0); |  | ||||||
| 			append(h1, text1); |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		p(changed, ctx) { |  | ||||||
| 			if (changed.$name) { |  | ||||||
| 				setData(text1, ctx.$name); |  | ||||||
| 			} |  | ||||||
| 		}, |  | ||||||
| 
 |  | ||||||
| 		d(detach) { |  | ||||||
| 			if (detach) { |  | ||||||
| 				detachNode(h1); |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function Main(options) { |  | ||||||
| 	init(this, options); |  | ||||||
| 	this._state = assign(this.store._init(["name"]), options.data); |  | ||||||
| 	this.store._add(this, ["name"]); |  | ||||||
| 	this._intro = true; |  | ||||||
| 
 |  | ||||||
| 	this._handlers.destroy = [removeFromStore]; |  | ||||||
| 
 |  | ||||||
| 	this._fragment = create_main_fragment(this, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (options.target) { |  | ||||||
| 		this._fragment.c(); |  | ||||||
| 		this._mount(options.target, options.anchor); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| assign(Main.prototype, { |  | ||||||
|  	destroy: destroy, |  | ||||||
|  	get: get, |  | ||||||
|  	fire: fire, |  | ||||||
|  	on: on, |  | ||||||
|  	set: set, |  | ||||||
|  	_set: _set, |  | ||||||
|  	_stage: _stage, |  | ||||||
|  	_mount: _mount, |  | ||||||
|  	_differs: _differs |  | ||||||
|  }); |  | ||||||
| 
 |  | ||||||
| Main.prototype._recompute = noop; |  | ||||||
| 
 |  | ||||||
| function createElement(name) { |  | ||||||
| 	return document.createElement(name); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function createText(data) { |  | ||||||
| 	return document.createTextNode(data); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function insert(target, node, anchor) { |  | ||||||
| 	target.insertBefore(node, anchor); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function append(target, node) { |  | ||||||
| 	target.appendChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function setData(text, data) { |  | ||||||
| 	text.data = '' + data; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function detachNode(node) { |  | ||||||
| 	node.parentNode.removeChild(node); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function init(component, options) { |  | ||||||
| 	component._handlers = blankObject(); |  | ||||||
| 	component._slots = blankObject(); |  | ||||||
| 	component._bind = options._bind; |  | ||||||
| 	component._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	component.options = options; |  | ||||||
| 	component.root = options.root || component; |  | ||||||
| 	component.store = options.store || component.root.store; |  | ||||||
| 
 |  | ||||||
| 	if (!options.root) { |  | ||||||
| 		component._beforecreate = []; |  | ||||||
| 		component._oncreate = []; |  | ||||||
| 		component._aftercreate = []; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function assign(tar, src) { |  | ||||||
| 	for (var k in src) tar[k] = src[k]; |  | ||||||
| 	return tar; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function removeFromStore() { |  | ||||||
| 	this.store._remove(this); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function destroy(detach) { |  | ||||||
| 	this.destroy = noop; |  | ||||||
| 	this.fire('destroy'); |  | ||||||
| 	this.set = noop; |  | ||||||
| 
 |  | ||||||
| 	this._fragment.d(detach !== false); |  | ||||||
| 	this._fragment = null; |  | ||||||
| 	this._state = {}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function get() { |  | ||||||
| 	return this._state; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function fire(eventName, data) { |  | ||||||
| 	var handlers = |  | ||||||
| 		eventName in this._handlers && this._handlers[eventName].slice(); |  | ||||||
| 	if (!handlers) return; |  | ||||||
| 
 |  | ||||||
| 	for (var i = 0; i < handlers.length; i += 1) { |  | ||||||
| 		var handler = handlers[i]; |  | ||||||
| 
 |  | ||||||
| 		if (!handler.__calling) { |  | ||||||
| 			try { |  | ||||||
| 				handler.__calling = true; |  | ||||||
| 				handler.call(this, data); |  | ||||||
| 			} finally { |  | ||||||
| 				handler.__calling = false; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function on(eventName, handler) { |  | ||||||
| 	var handlers = this._handlers[eventName] || (this._handlers[eventName] = []); |  | ||||||
| 	handlers.push(handler); |  | ||||||
| 
 |  | ||||||
| 	return { |  | ||||||
| 		cancel: function() { |  | ||||||
| 			var index = handlers.indexOf(handler); |  | ||||||
| 			if (~index) handlers.splice(index, 1); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function set(newState) { |  | ||||||
| 	this._set(assign({}, newState)); |  | ||||||
| 	if (this.root._lock) return; |  | ||||||
| 	flush(this.root); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _set(newState) { |  | ||||||
| 	var oldState = this._state, |  | ||||||
| 		changed = {}, |  | ||||||
| 		dirty = false; |  | ||||||
| 
 |  | ||||||
| 	newState = assign(this._staged, newState); |  | ||||||
| 	this._staged = {}; |  | ||||||
| 
 |  | ||||||
| 	for (var key in newState) { |  | ||||||
| 		if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true; |  | ||||||
| 	} |  | ||||||
| 	if (!dirty) return; |  | ||||||
| 
 |  | ||||||
| 	this._state = assign(assign({}, oldState), newState); |  | ||||||
| 	this._recompute(changed, this._state); |  | ||||||
| 	if (this._bind) this._bind(changed, this._state); |  | ||||||
| 
 |  | ||||||
| 	if (this._fragment) { |  | ||||||
| 		this.fire("state", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 		this._fragment.p(changed, this._state); |  | ||||||
| 		this.fire("update", { changed: changed, current: this._state, previous: oldState }); |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _stage(newState) { |  | ||||||
| 	assign(this._staged, newState); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _mount(target, anchor) { |  | ||||||
| 	this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function _differs(a, b) { |  | ||||||
| 	return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function noop() {} |  | ||||||
| 
 |  | ||||||
| function blankObject() { |  | ||||||
| 	return Object.create(null); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function flush(component) { |  | ||||||
| 	component._lock = true; |  | ||||||
| 	callAll(component._beforecreate); |  | ||||||
| 	callAll(component._oncreate); |  | ||||||
| 	callAll(component._aftercreate); |  | ||||||
| 	component._lock = false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| function callAll(fns) { |  | ||||||
| 	while (fns && fns.length) fns.shift()(); |  | ||||||
| } |  | ||||||
| export default Main; |  | ||||||
| @ -1 +0,0 @@ | |||||||
| <h1>Hello {$name}</h1> |  | ||||||
| @ -1,20 +0,0 @@ | |||||||
| const sander = require('sander'); |  | ||||||
| const glob = require('tiny-glob/sync'); |  | ||||||
| 
 |  | ||||||
| process.chdir(__dirname); |  | ||||||
| 
 |  | ||||||
| sander.readdirSync('samples').forEach(dir => { |  | ||||||
| 	if (dir[0] === '.') return; |  | ||||||
| 
 |  | ||||||
| 	sander.rimrafSync(`samples/${dir}/expected`); |  | ||||||
| 
 |  | ||||||
| 	const files = glob(`**`, { cwd: `samples/${dir}/actual`, filesOnly: true }); |  | ||||||
| 	files.forEach(file => { |  | ||||||
| 		const source = sander.readFileSync(`samples/${dir}/actual/${file}`, { encoding: 'utf-8' }); |  | ||||||
| 
 |  | ||||||
| 		sander.writeFileSync( |  | ||||||
| 			`samples/${dir}/expected/${file}`, |  | ||||||
| 			source.replace(/generated by Svelte v(\d+\.\d+\.\d+)/, 'generated by Svelte vx.y.z') |  | ||||||
| 		); |  | ||||||
| 	}); |  | ||||||
| }); |  | ||||||
					Loading…
					
					
				
		Reference in new issue