mirror of https://github.com/sveltejs/svelte
				
				
				
			failing test for #712
	
		
	
				
					
				
			
							parent
							
								
									0a2fed82c9
								
							
						
					
					
						commit
						343d66538b
					
				| @ -0,0 +1,206 @@ | ||||
| function noop() {} | ||||
| 
 | ||||
| function assign(target) { | ||||
| 	var k, | ||||
| 		source, | ||||
| 		i = 1, | ||||
| 		len = arguments.length; | ||||
| 	for (; i < len; i++) { | ||||
| 		source = arguments[i]; | ||||
| 		for (k in source) target[k] = source[k]; | ||||
| 	} | ||||
| 
 | ||||
| 	return target; | ||||
| } | ||||
| 
 | ||||
| function appendNode(node, target) { | ||||
| 	target.appendChild(node); | ||||
| } | ||||
| 
 | ||||
| function insertNode(node, target, anchor) { | ||||
| 	target.insertBefore(node, anchor); | ||||
| } | ||||
| 
 | ||||
| function detachNode(node) { | ||||
| 	node.parentNode.removeChild(node); | ||||
| } | ||||
| 
 | ||||
| function createElement(name) { | ||||
| 	return document.createElement(name); | ||||
| } | ||||
| 
 | ||||
| function setAttribute(node, attribute, value) { | ||||
| 	node.setAttribute(attribute, value); | ||||
| } | ||||
| 
 | ||||
| function differs(a, b) { | ||||
| 	return a !== b || ((a && typeof a === 'object') || typeof a === 'function'); | ||||
| } | ||||
| 
 | ||||
| function dispatchObservers(component, group, newState, oldState) { | ||||
| 	for (var key in group) { | ||||
| 		if (!(key in newState)) continue; | ||||
| 
 | ||||
| 		var newValue = newState[key]; | ||||
| 		var oldValue = oldState[key]; | ||||
| 
 | ||||
| 		if (differs(newValue, oldValue)) { | ||||
| 			var callbacks = group[key]; | ||||
| 			if (!callbacks) continue; | ||||
| 
 | ||||
| 			for (var i = 0; i < callbacks.length; i += 1) { | ||||
| 				var callback = callbacks[i]; | ||||
| 				if (callback.__calling) continue; | ||||
| 
 | ||||
| 				callback.__calling = true; | ||||
| 				callback.call(component, newValue, oldValue); | ||||
| 				callback.__calling = false; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function get(key) { | ||||
| 	return key ? this._state[key] : 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) { | ||||
| 		handlers[i].call(this, data); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function observe(key, callback, options) { | ||||
| 	var group = options && options.defer | ||||
| 		? this._observers.post | ||||
| 		: this._observers.pre; | ||||
| 
 | ||||
| 	(group[key] || (group[key] = [])).push(callback); | ||||
| 
 | ||||
| 	if (!options || options.init !== false) { | ||||
| 		callback.__calling = true; | ||||
| 		callback.call(this, this._state[key]); | ||||
| 		callback.__calling = false; | ||||
| 	} | ||||
| 
 | ||||
| 	return { | ||||
| 		cancel: function() { | ||||
| 			var index = group[key].indexOf(callback); | ||||
| 			if (~index) group[key].splice(index, 1); | ||||
| 		} | ||||
| 	}; | ||||
| } | ||||
| 
 | ||||
| function on(eventName, handler) { | ||||
| 	if (eventName === 'teardown') return this.on('destroy', 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)); | ||||
| 	callAll(this._root._oncreate); | ||||
| } | ||||
| 
 | ||||
| function callAll(fns) { | ||||
| 	while (fns && fns.length) fns.pop()(); | ||||
| } | ||||
| 
 | ||||
| var proto = { | ||||
| 	get: get, | ||||
| 	fire: fire, | ||||
| 	observe: observe, | ||||
| 	on: on, | ||||
| 	set: set | ||||
| }; | ||||
| 
 | ||||
| function add_css () { | ||||
| 	var style = createElement( 'style' ); | ||||
| 	style.id = 'svelte-2363328337-style'; | ||||
| 	style.textContent = "\n\t@media (min-width: 1px) {\n\t\tdiv[svelte-2363328337], [svelte-2363328337] div {\n\t\t\tcolor: red;\n\t\t}\n\t}\n"; | ||||
| 	appendNode( style, document.head ); | ||||
| } | ||||
| 
 | ||||
| function create_main_fragment ( state, component ) { | ||||
| 	var div; | ||||
| 
 | ||||
| 	return { | ||||
| 		create: function () { | ||||
| 			div = createElement( 'div' ); | ||||
| 			this.hydrate(); | ||||
| 		}, | ||||
| 
 | ||||
| 		hydrate: function ( nodes ) { | ||||
| 			setAttribute( div, 'svelte-2363328337', '' ); | ||||
| 		}, | ||||
| 
 | ||||
| 		mount: function ( target, anchor ) { | ||||
| 			insertNode( div, target, anchor ); | ||||
| 		}, | ||||
| 
 | ||||
| 		unmount: function () { | ||||
| 			detachNode( div ); | ||||
| 		}, | ||||
| 
 | ||||
| 		destroy: noop | ||||
| 	}; | ||||
| } | ||||
| 
 | ||||
| function SvelteComponent ( options ) { | ||||
| 	options = options || {}; | ||||
| 	this._state = options.data || {}; | ||||
| 
 | ||||
| 	this._observers = { | ||||
| 		pre: Object.create( null ), | ||||
| 		post: Object.create( null ) | ||||
| 	}; | ||||
| 
 | ||||
| 	this._handlers = Object.create( null ); | ||||
| 
 | ||||
| 	this._root = options._root || this; | ||||
| 	this._yield = options._yield; | ||||
| 
 | ||||
| 	this._torndown = false; | ||||
| 	if ( !document.getElementById( 'svelte-2363328337-style' ) ) add_css(); | ||||
| 
 | ||||
| 	this._fragment = create_main_fragment( this._state, this ); | ||||
| 
 | ||||
| 	if ( options.target ) { | ||||
| 		this._fragment.create(); | ||||
| 		this._fragment.mount( options.target, null ); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| assign( SvelteComponent.prototype, proto ); | ||||
| 
 | ||||
| SvelteComponent.prototype._set = function _set ( newState ) { | ||||
| 	var oldState = this._state; | ||||
| 	this._state = assign( {}, oldState, newState ); | ||||
| 	dispatchObservers( this, this._observers.pre, newState, oldState ); | ||||
| 	dispatchObservers( this, this._observers.post, newState, oldState ); | ||||
| }; | ||||
| 
 | ||||
| SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = function destroy ( detach ) { | ||||
| 	this.fire( 'destroy' ); | ||||
| 
 | ||||
| 	if ( detach !== false ) this._fragment.unmount(); | ||||
| 	this._fragment.destroy(); | ||||
| 	this._fragment = null; | ||||
| 
 | ||||
| 	this._state = {}; | ||||
| 	this._torndown = true; | ||||
| }; | ||||
| 
 | ||||
| export default SvelteComponent; | ||||
| @ -0,0 +1,80 @@ | ||||
| import { appendNode, assign, createElement, detachNode, dispatchObservers, insertNode, noop, proto, setAttribute } from "svelte/shared.js"; | ||||
| 
 | ||||
| function add_css () { | ||||
| 	var style = createElement( 'style' ); | ||||
| 	style.id = 'svelte-2363328337-style'; | ||||
| 	style.textContent = "\n\t@media (min-width: 1px) {\n\t\tdiv[svelte-2363328337], [svelte-2363328337] div {\n\t\t\tcolor: red;\n\t\t}\n\t}\n"; | ||||
| 	appendNode( style, document.head ); | ||||
| } | ||||
| 
 | ||||
| function create_main_fragment ( state, component ) { | ||||
| 	var div; | ||||
| 
 | ||||
| 	return { | ||||
| 		create: function () { | ||||
| 			div = createElement( 'div' ); | ||||
| 			this.hydrate(); | ||||
| 		}, | ||||
| 
 | ||||
| 		hydrate: function ( nodes ) { | ||||
| 			setAttribute( div, 'svelte-2363328337', '' ); | ||||
| 		}, | ||||
| 
 | ||||
| 		mount: function ( target, anchor ) { | ||||
| 			insertNode( div, target, anchor ); | ||||
| 		}, | ||||
| 
 | ||||
| 		unmount: function () { | ||||
| 			detachNode( div ); | ||||
| 		}, | ||||
| 
 | ||||
| 		destroy: noop | ||||
| 	}; | ||||
| } | ||||
| 
 | ||||
| function SvelteComponent ( options ) { | ||||
| 	options = options || {}; | ||||
| 	this._state = options.data || {}; | ||||
| 
 | ||||
| 	this._observers = { | ||||
| 		pre: Object.create( null ), | ||||
| 		post: Object.create( null ) | ||||
| 	}; | ||||
| 
 | ||||
| 	this._handlers = Object.create( null ); | ||||
| 
 | ||||
| 	this._root = options._root || this; | ||||
| 	this._yield = options._yield; | ||||
| 
 | ||||
| 	this._torndown = false; | ||||
| 	if ( !document.getElementById( 'svelte-2363328337-style' ) ) add_css(); | ||||
| 
 | ||||
| 	this._fragment = create_main_fragment( this._state, this ); | ||||
| 
 | ||||
| 	if ( options.target ) { | ||||
| 		this._fragment.create(); | ||||
| 		this._fragment.mount( options.target, null ); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| assign( SvelteComponent.prototype, proto ); | ||||
| 
 | ||||
| SvelteComponent.prototype._set = function _set ( newState ) { | ||||
| 	var oldState = this._state; | ||||
| 	this._state = assign( {}, oldState, newState ); | ||||
| 	dispatchObservers( this, this._observers.pre, newState, oldState ); | ||||
| 	dispatchObservers( this, this._observers.post, newState, oldState ); | ||||
| }; | ||||
| 
 | ||||
| SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = function destroy ( detach ) { | ||||
| 	this.fire( 'destroy' ); | ||||
| 
 | ||||
| 	if ( detach !== false ) this._fragment.unmount(); | ||||
| 	this._fragment.destroy(); | ||||
| 	this._fragment = null; | ||||
| 
 | ||||
| 	this._state = {}; | ||||
| 	this._torndown = true; | ||||
| }; | ||||
| 
 | ||||
| export default SvelteComponent; | ||||
| @ -0,0 +1,9 @@ | ||||
| <div></div> | ||||
| 
 | ||||
| <style> | ||||
| 	@media (min-width: 1px) { | ||||
| 		div { | ||||
| 			color: red; | ||||
| 		} | ||||
| 	} | ||||
| </style> | ||||
					Loading…
					
					
				
		Reference in new issue