@@ -4,7 +4,7 @@ import getSetter from '../shared/binding/getSetter.js';
4
4
import getStaticAttributeValue from './getStaticAttributeValue.js' ;
5
5
6
6
export default function visitBinding ( generator , block , state , node , attribute ) {
7
- const { name, keypath , parts } = flattenReference ( attribute . value ) ;
7
+ const { name, parts } = flattenReference ( attribute . value ) ;
8
8
const { snippet, contexts, dependencies } = block . contextualise ( attribute . value ) ;
9
9
10
10
if ( dependencies . length > 1 ) throw new Error ( 'An unexpected situation arose. Please raise an issue at https://github.com/sveltejs/svelte/issues — thanks!' ) ;
@@ -25,14 +25,16 @@ export default function visitBinding ( generator, block, state, node, attribute
25
25
const lock = block . alias ( `${ state . parentNode } _updating` ) ;
26
26
let updateCondition = `!${ lock } ` ;
27
27
28
+ block . addVariable ( lock , 'false' ) ;
29
+
28
30
// <select> special case
29
31
if ( node . name === 'select' ) {
30
32
if ( ! isMultipleSelect ) {
31
33
setter = `var selectedOption = ${ state . parentNode } .selectedOptions[0] || ${ state . parentNode } .options[0];\n${ setter } ` ;
32
34
}
33
35
34
36
const value = block . getUniqueName ( 'value' ) ;
35
- const i = block . getUniqueName ( 'i' ) ;
37
+ const i = block . alias ( 'i' ) ;
36
38
const option = block . getUniqueName ( 'option' ) ;
37
39
38
40
const ifStatement = isMultipleSelect ?
@@ -84,7 +86,7 @@ export default function visitBinding ( generator, block, state, node, attribute
84
86
85
87
if ( attribute . name === 'currentTime' ) {
86
88
const frame = block . getUniqueName ( `${ state . parentNode } _animationframe` ) ;
87
- block . builders . create . addLine ( `var ${ frame } ;` ) ;
89
+ block . addVariable ( frame ) ;
88
90
setter = deindent `
89
91
cancelAnimationFrame( ${ frame } );
90
92
if ( !${ state . parentNode } .paused ) ${ frame } = requestAnimationFrame( ${ handler } );
@@ -101,16 +103,14 @@ export default function visitBinding ( generator, block, state, node, attribute
101
103
else if ( attribute . name === 'paused' ) {
102
104
// this is necessary to prevent the audio restarting by itself
103
105
const last = block . getUniqueName ( `${ state . parentNode } _paused_value` ) ;
104
- block . builders . create . addLine ( `var ${ last } = true;` ) ;
106
+ block . addVariable ( last , ' true' ) ;
105
107
106
108
updateCondition = `${ last } !== ( ${ last } = ${ snippet } )` ;
107
109
updateElement = `${ state . parentNode } [ ${ last } ? 'pause' : 'play' ]();` ;
108
110
}
109
111
}
110
112
111
113
block . builders . create . addBlock ( deindent `
112
- var ${ lock } = false;
113
-
114
114
function ${ handler } () {
115
115
${ lock } = true;
116
116
${ setter }
0 commit comments