diff --git a/compiler/generate/index.js b/compiler/generate/index.js index 82658ff902..0efeb8183a 100644 --- a/compiler/generate/index.js +++ b/compiler/generate/index.js @@ -93,9 +93,7 @@ export default function generate ( parsed, template ) { return `root.${flattened.keypath}`; } - console.log( `node, contexts`, node, contexts ) - return 'TODO' - throw new Error( 'TODO expressions' ); + return 'TODO'; } parsed.html.children.forEach( child => { diff --git a/compiler/parse/read/directives.js b/compiler/parse/read/directives.js index 7de13842b9..55e5f2e7e0 100644 --- a/compiler/parse/read/directives.js +++ b/compiler/parse/read/directives.js @@ -1,13 +1,13 @@ import { tokenizer, tokTypes, parseExpressionAt } from 'acorn'; -export function readEventHandlerDirective ( parser, name ) { +export function readEventHandlerDirective ( parser, start, name ) { const quoteMark = ( parser.eat( `'` ) ? `'` : parser.eat( `"` ) ? `"` : null ); - const start = parser.index; + const expressionStart = parser.index; let end = null; let depth = 0; @@ -16,17 +16,17 @@ export function readEventHandlerDirective ( parser, name ) { if ( token.type === tokTypes.parenR ) { depth -= 1; if ( depth === 0 ) { - end = start + token.end; + end = expressionStart + token.end; break; } } } - const expression = parseExpressionAt( parser.template.slice( 0, end ), start ); + const expression = parseExpressionAt( parser.template.slice( 0, end ), expressionStart ); parser.index = expression.end; if ( expression.type !== 'CallExpression' ) { - parser.error( `Expected call expression`, start ); + parser.error( `Expected call expression`, expressionStart ); } if ( quoteMark ) { @@ -34,6 +34,8 @@ export function readEventHandlerDirective ( parser, name ) { } return { + start, + end: parser.index, type: 'EventHandler', name, expression diff --git a/compiler/parse/read/style.js b/compiler/parse/read/style.js index e69de29bb2..bab3d2e7b6 100644 --- a/compiler/parse/read/style.js +++ b/compiler/parse/read/style.js @@ -0,0 +1,3 @@ +export default function readStyle () { + throw new Error( 'TODO