@@ -895,17 +895,16 @@ export default class Element extends Node {
895
895
snippet = expression . snippet ;
896
896
dependencies = expression . dependencies ;
897
897
} else {
898
- const varName = camelCase ( name ) ;
899
- snippet = `ctx.${ varName } ` ;
900
- dependencies = [ varName ] ;
898
+ snippet = `ctx${ propertize ( name ) } ` ;
899
+ dependencies = [ name ] ;
901
900
}
902
901
const updater = `@toggleClass(${ this . var } , "${ name } ", ${ snippet } );` ;
903
902
904
903
block . builders . hydrate . addLine ( updater ) ;
905
904
906
905
if ( ( dependencies && dependencies . size > 0 ) || this . classDependencies . length ) {
907
906
const allDeps = this . classDependencies . concat ( ...dependencies ) ;
908
- const deps = allDeps . map ( dependency => `changed. ${ dependency } ` ) . join ( ' || ' ) ;
907
+ const deps = allDeps . map ( dependency => `changed${ propertize ( dependency ) } ` ) . join ( ' || ' ) ;
909
908
const condition = allDeps . length > 1 ? `(${ deps } )` : deps ;
910
909
911
910
block . builders . update . addConditional (
@@ -988,7 +987,7 @@ export default class Element extends Node {
988
987
989
988
const classExpr = this . classes . map ( ( classDir : Class ) => {
990
989
const { expression, name } = classDir ;
991
- const snippet = expression ? expression . snippet : `ctx. ${ camelCase ( name ) } ` ;
990
+ const snippet = expression ? expression . snippet : `ctx${ propertize ( name ) } ` ;
992
991
return `${ snippet } ? "${ name } " : ""` ;
993
992
} ) . join ( ', ' ) ;
994
993
@@ -1170,8 +1169,6 @@ const events = [
1170
1169
}
1171
1170
] ;
1172
1171
1173
- function camelCase ( str ) {
1174
- return str . replace ( / ( - \w ) / g, function ( m ) {
1175
- return m [ 1 ] . toUpperCase ( ) ;
1176
- } ) ;
1172
+ function propertize ( prop ) {
1173
+ return / ^ [ a - z A - Z _ $ ] [ 0 - 9 a - z A - Z _ $ ] * $ / . test ( prop ) ? `.${ prop } ` : `["${ prop } "]` ;
1177
1174
}
0 commit comments