Changed from this keyword to argument in setup method.

pull/752/head
Hunter Perrin 7 years ago
parent 59d01f737d
commit ba74297a19

@ -276,7 +276,7 @@ export default function dom(
this._destroyed = true; this._destroyed = true;
}; };
${templateProperties.setup && `@template.setup.call( ${name} );`} ${templateProperties.setup && `@template.setup( ${name} );`}
`); `);
const usedHelpers = new Set(); const usedHelpers = new Set();

@ -1,14 +1,12 @@
import usesThisOrArguments from '../utils/usesThisOrArguments';
import { Validator } from '../../'; import { Validator } from '../../';
import { Node } from '../../../interfaces'; import { Node } from '../../../interfaces';
const disallowed = new Set(['Literal', 'ObjectExpression', 'ArrayExpression']);
export default function setup(validator: Validator, prop: Node) { export default function setup(validator: Validator, prop: Node) {
if (prop.value.type === 'ArrowFunctionExpression') { while (prop.type === 'ParenthesizedExpression') prop = prop.expression;
if (usesThisOrArguments(prop.value.body)) {
validator.error( if (disallowed.has(prop.value.type)) {
`'setup' should be a function expression, not an arrow function expression`, validator.error(`'setup' must be a function`, prop.value.start);
prop.start
);
}
} }
} }

@ -118,9 +118,14 @@ var template = (function () {
console.log( bar ); console.log( bar );
} }
}, },
setup () { setup: (Component) => {
this.SOME_CONSTANT = 42; Component.SOME_CONSTANT = 42;
this.prototype.foo( 'baz' ); Component.factory = function (target) {
return new Component({
target: target
});
};
Component.prototype.foo( 'baz' );
} }
}; };
}()); }());
@ -183,6 +188,6 @@ SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = functio
this._destroyed = true; this._destroyed = true;
}; };
template.setup.call( SvelteComponent ); template.setup( SvelteComponent );
export default SvelteComponent; export default SvelteComponent;

@ -7,9 +7,14 @@ var template = (function () {
console.log( bar ); console.log( bar );
} }
}, },
setup () { setup: (Component) => {
this.SOME_CONSTANT = 42; Component.SOME_CONSTANT = 42;
this.prototype.foo( 'baz' ); Component.factory = function (target) {
return new Component({
target: target
});
}
Component.prototype.foo( 'baz' );
} }
}; };
}()); }());
@ -72,6 +77,6 @@ SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = functio
this._destroyed = true; this._destroyed = true;
}; };
template.setup.call( SvelteComponent ); template.setup( SvelteComponent );
export default SvelteComponent; export default SvelteComponent;

@ -5,9 +5,14 @@
console.log( bar ); console.log( bar );
} }
}, },
setup () { setup: (Component) => {
this.SOME_CONSTANT = 42; Component.SOME_CONSTANT = 42;
this.prototype.foo( 'baz' ); Component.factory = function (target) {
return new Component({
target: target
});
}
Component.prototype.foo( 'baz' );
} }
}; };
</script> </script>

Loading…
Cancel
Save