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