mirror of https://github.com/sveltejs/svelte
Merge pull request #316 from sveltejs/gh-40
[WIP] warn on onrender/onteardown, replace with oncreate/ondestroypull/322/head
commit
9fc2108fb4
@ -0,0 +1,9 @@
|
|||||||
|
import usesThisOrArguments from '../utils/usesThisOrArguments.js';
|
||||||
|
|
||||||
|
export default function oncreate ( validator, prop ) {
|
||||||
|
if ( prop.value.type === 'ArrowFunctionExpression' ) {
|
||||||
|
if ( usesThisOrArguments( prop.value.body ) ) {
|
||||||
|
validator.error( `'oncreate' should be a function expression, not an arrow function expression`, prop.start );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
import usesThisOrArguments from '../utils/usesThisOrArguments.js';
|
||||||
|
|
||||||
|
export default function ondestroy ( validator, prop ) {
|
||||||
|
if ( prop.value.type === 'ArrowFunctionExpression' ) {
|
||||||
|
if ( usesThisOrArguments( prop.value.body ) ) {
|
||||||
|
validator.error( `'ondestroy' should be a function expression, not an arrow function expression`, prop.start );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,6 @@
|
|||||||
import usesThisOrArguments from '../utils/usesThisOrArguments.js';
|
import oncreate from './oncreate.js';
|
||||||
|
|
||||||
export default function onrender ( validator, prop ) {
|
export default function onrender ( validator, prop ) {
|
||||||
if ( prop.value.type === 'ArrowFunctionExpression' ) {
|
validator.warn( `'onrender' has been deprecated in favour of 'oncreate', and will cause an error in Svelte 2.x`, prop.start );
|
||||||
if ( usesThisOrArguments( prop.value.body ) ) {
|
oncreate( validator, prop );
|
||||||
validator.error( `'onrender' should be a function expression, not an arrow function expression`, prop.start );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
import usesThisOrArguments from '../utils/usesThisOrArguments.js';
|
import ondestroy from './ondestroy.js';
|
||||||
|
|
||||||
export default function onteardown ( validator, prop ) {
|
export default function onteardown ( validator, prop ) {
|
||||||
if ( prop.value.type === 'ArrowFunctionExpression' ) {
|
validator.warn( `'onteardown' has been deprecated in favour of 'ondestroy', and will cause an error in Svelte 2.x`, prop.start );
|
||||||
if ( usesThisOrArguments( prop.value.body ) ) {
|
ondestroy( validator, prop );
|
||||||
validator.error( `'onteardown' should be a function expression, not an arrow function expression`, prop.start );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
export default {
|
export default {
|
||||||
test ( assert, component ) {
|
test ( assert, component ) {
|
||||||
assert.deepEqual( component.events, [ 'render' ]);
|
assert.deepEqual( component.events, [ 'render' ]);
|
||||||
component.teardown();
|
component.destroy();
|
||||||
assert.deepEqual( component.events, [ 'render', 'teardown' ]);
|
assert.deepEqual( component.events, [ 'render', 'teardown' ]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
export default {
|
export default {
|
||||||
'skip-ssr': true, // uses onrender
|
'skip-ssr': true, // uses oncreate
|
||||||
|
|
||||||
html: `<div><p>true</p>\n<p>true</p></div>`
|
html: `<div><p>true</p>\n<p>true</p></div>`
|
||||||
};
|
};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
export default {
|
export default {
|
||||||
'skip-ssr': true, // uses onrender
|
'skip-ssr': true, // uses oncreate
|
||||||
|
|
||||||
html: '<p>2</p>'
|
html: '<p>2</p>'
|
||||||
};
|
};
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
oncreate: () => console.log( 'rendering' )
|
||||||
|
};
|
||||||
|
</script>
|
@ -1,5 +1,5 @@
|
|||||||
[{
|
[{
|
||||||
"message": "'onrender' should be a function expression, not an arrow function expression",
|
"message": "'oncreate' should be a function expression, not an arrow function expression",
|
||||||
"pos": 29,
|
"pos": 29,
|
||||||
"loc": {
|
"loc": {
|
||||||
"line": 3,
|
"line": 3,
|
@ -1,6 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
onrender: () => {
|
oncreate: () => {
|
||||||
this.set({ a: 1 });
|
this.set({ a: 1 });
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -0,0 +1,5 @@
|
|||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
ondestroy: () => console.log( 'tearing down' )
|
||||||
|
};
|
||||||
|
</script>
|
@ -0,0 +1,8 @@
|
|||||||
|
[{
|
||||||
|
"message": "'ondestroy' should be a function expression, not an arrow function expression",
|
||||||
|
"pos": 29,
|
||||||
|
"loc": {
|
||||||
|
"line": 3,
|
||||||
|
"column": 2
|
||||||
|
}
|
||||||
|
}]
|
@ -1,6 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
onteardown: () => {
|
ondestroy: () => {
|
||||||
this.set({ a: 1 });
|
this.set({ a: 1 });
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -1,5 +0,0 @@
|
|||||||
<script>
|
|
||||||
export default {
|
|
||||||
onrender: () => console.log( 'rendering' )
|
|
||||||
};
|
|
||||||
</script>
|
|
@ -1,5 +0,0 @@
|
|||||||
<script>
|
|
||||||
export default {
|
|
||||||
onteardown: () => console.log( 'tearing down' )
|
|
||||||
};
|
|
||||||
</script>
|
|
@ -1,8 +0,0 @@
|
|||||||
[{
|
|
||||||
"message": "'onteardown' should be a function expression, not an arrow function expression",
|
|
||||||
"pos": 29,
|
|
||||||
"loc": {
|
|
||||||
"line": 3,
|
|
||||||
"column": 2
|
|
||||||
}
|
|
||||||
}]
|
|
Loading…
Reference in new issue