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;
};
${templateProperties.setup && `@template.setup.call( ${name} );`}
${templateProperties.setup && `@template.setup( ${name} );`}
`);
const usedHelpers = new Set();

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

@ -118,9 +118,14 @@ var template = (function () {
console.log( bar );
}
},
setup () {
this.SOME_CONSTANT = 42;
this.prototype.foo( 'baz' );
setup: (Component) => {
Component.SOME_CONSTANT = 42;
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;
};
template.setup.call( SvelteComponent );
template.setup( SvelteComponent );
export default SvelteComponent;

@ -7,9 +7,14 @@ var template = (function () {
console.log( bar );
}
},
setup () {
this.SOME_CONSTANT = 42;
this.prototype.foo( 'baz' );
setup: (Component) => {
Component.SOME_CONSTANT = 42;
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;
};
template.setup.call( SvelteComponent );
template.setup( SvelteComponent );
export default SvelteComponent;

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

Loading…
Cancel
Save