increase test coverage

pull/565/head
Rich-Harris 8 years ago
parent 3a7f7e29c2
commit 7db27152fb

@ -183,7 +183,8 @@ export default function dom ( parsed, source, options ) {
}; };
${name}.prototype.teardown = ${name}.prototype.destroy = function destroy ( detach ) { ${name}.prototype.teardown = ${name}.prototype.destroy = function destroy ( detach ) {
this.fire( 'destroy' );${templateProperties.ondestroy ? `\n${generator.alias( 'template' )}.ondestroy.call( this );` : ``} this.fire( 'destroy' );
${templateProperties.ondestroy && `${generator.alias( 'template' )}.ondestroy.call( this );`}
this._fragment.destroy( detach !== false ); this._fragment.destroy( detach !== false );
this._fragment = null; this._fragment = null;

@ -56,19 +56,16 @@ export function create ( source, _options = {} ) {
return; return;
} }
let result;
try { try {
result = (new Function( 'return ' + compiled.code ))(); return (new Function( 'return ' + compiled.code ))();
} catch ( err ) { } catch ( err ) {
if ( _options.onerror ) { if ( _options.onerror ) {
_options.onerror( err ); _options.onerror( err );
return;
} else { } else {
throw err; throw err;
} }
return;
} }
return result;
} }
export { parse, validate, version as VERSION }; export { parse, validate, version as VERSION };

@ -0,0 +1,86 @@
import Imported from './Imported.html';
import { assign, createText, detachNode, dispatchObservers, insertNode, proto } from "svelte/shared.js";
var template = (function () {
return {
components: {
NonImported
}
};
}());
function create_main_fragment ( state, component ) {
var imported = new Imported({
target: null,
_root: component._root
});
var text = createText( "\n" );
var nonimported = new template.components.NonImported({
target: null,
_root: component._root
});
return {
mount: function ( target, anchor ) {
imported._fragment.mount( target, anchor );
insertNode( text, target, anchor );
nonimported._fragment.mount( target, anchor );
},
destroy: function ( detach ) {
imported.destroy( detach );
nonimported.destroy( detach );
if ( detach ) {
detachNode( text );
}
}
};
}
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;
this._renderHooks = [];
this._fragment = create_main_fragment( this._state, this );
if ( options.target ) this._fragment.mount( options.target, null );
this._flush();
}
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 );
this._flush();
};
SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = function destroy ( detach ) {
this.fire( 'destroy' );
this._fragment.destroy( detach !== false );
this._fragment = null;
this._state = {};
this._torndown = true;
};
export default SvelteComponent;

@ -0,0 +1,13 @@
<Imported/>
<NonImported/>
<script>
import Imported from './Imported.html';
export default {
components: {
Imported,
NonImported
}
};
</script>

@ -0,0 +1,67 @@
import { assign, dispatchObservers, noop, proto } from "svelte/shared.js";
var template = (function () {
return {
// this test should be removed in v2
oncreate () {},
ondestroy () {}
};
}());
function create_main_fragment ( state, component ) {
return {
mount: noop,
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;
this._fragment = create_main_fragment( this._state, this );
if ( options.target ) this._fragment.mount( options.target, null );
if ( options._root ) {
options._root._renderHooks.push( template.oncreate.bind( this ) );
} else {
template.oncreate.call( this );
}
}
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' );
template.ondestroy.call( this );
this._fragment.destroy( detach !== false );
this._fragment = null;
this._state = {};
this._torndown = true;
};
export default SvelteComponent;

@ -0,0 +1,7 @@
<script>
export default {
// this test should be removed in v2
onrender () {},
onteardown () {}
};
</script>
Loading…
Cancel
Save