Skip to content

Commit

Permalink
failing test for #712
Browse files Browse the repository at this point in the history
  • Loading branch information
Rich-Harris committed Jul 24, 2017
1 parent 0a2fed8 commit 343d665
Show file tree
Hide file tree
Showing 3 changed files with 295 additions and 0 deletions.
206 changes: 206 additions & 0 deletions test/js/samples/css-media-query/expected-bundle.js
Original file line number Diff line number Diff line change
@@ -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;
80 changes: 80 additions & 0 deletions test/js/samples/css-media-query/expected.js
Original file line number Diff line number Diff line change
@@ -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;
9 changes: 9 additions & 0 deletions test/js/samples/css-media-query/input.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<div></div>

<style>
@media (min-width: 1px) {
div {
color: red;
}
}
</style>

0 comments on commit 343d665

Please sign in to comment.