From d1647cffe138f3c387385c2a0c915da947f9df68 Mon Sep 17 00:00:00 2001 From: Jacob Wright Date: Thu, 15 Mar 2018 11:57:16 -0600 Subject: [PATCH 1/2] Removes uneeded newline characters in expression --- src/parse/read/directives.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/parse/read/directives.ts b/src/parse/read/directives.ts index a3ff94c68cbd..8e38786d168a 100644 --- a/src/parse/read/directives.ts +++ b/src/parse/read/directives.ts @@ -51,6 +51,14 @@ const DIRECTIVES = { } }, }, + + Behavior: { + names: [ 'add' ], + allowedExpressionTypes: [ 'Identifier', 'MemberExpression' ], + attribute(start, end, type, name, expression) { + return { start, end, type, name, value: expression }; + }, + } }; @@ -83,7 +91,7 @@ function readExpression(parser: Parser, start: number, quoteMark: string|null) { } else { str += char; } - } else if (/[\s\r\n\/>]/.test(char)) { + } else if (/[\s\/>]/.test(char)) { break; } else { str += char; From 11bc40389a120a12afdb9b380587f6cf5ca43097 Mon Sep 17 00:00:00 2001 From: Jacob Wright Date: Thu, 15 Mar 2018 12:29:35 -0600 Subject: [PATCH 2/2] Humanize parse error expression types --- src/parse/read/directives.ts | 6 +++++- test/parser/samples/error-binding-rvalue/error.json | 2 +- test/parser/samples/error-event-handler/error.json | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/parse/read/directives.ts b/src/parse/read/directives.ts index 8e38786d168a..858fc93089af 100644 --- a/src/parse/read/directives.ts +++ b/src/parse/read/directives.ts @@ -141,7 +141,7 @@ export function readDirective( expression = readExpression(parser, expressionStart, quoteMark); if (directive.allowedExpressionTypes.indexOf(expression.type) === -1) { - parser.error(`Expected ${directive.allowedExpressionTypes.join(' or ')}`, expressionStart); + parser.error(`Expected ${directive.allowedExpressionTypes.map(humanize).join(' or ')}`, expressionStart); } } @@ -176,3 +176,7 @@ function getShorthandValue(start: number, name: string) { }, ]; } + +function humanize(str) { + return str.replace(/[a-z][A-Z]/g, chars => `${chars[0]} ${chars[1]}`).toLowerCase(); +} diff --git a/test/parser/samples/error-binding-rvalue/error.json b/test/parser/samples/error-binding-rvalue/error.json index 2f25dbef0d7d..9422f9d00cab 100644 --- a/test/parser/samples/error-binding-rvalue/error.json +++ b/test/parser/samples/error-binding-rvalue/error.json @@ -1,5 +1,5 @@ { - "message": "Expected Identifier or MemberExpression", + "message": "Expected identifier or member expression", "pos": 19, "loc": { "line": 1, diff --git a/test/parser/samples/error-event-handler/error.json b/test/parser/samples/error-event-handler/error.json index 45032c270788..a56e3c3b6e65 100644 --- a/test/parser/samples/error-event-handler/error.json +++ b/test/parser/samples/error-event-handler/error.json @@ -1,5 +1,5 @@ { - "message": "Expected CallExpression", + "message": "Expected call expression", "loc": { "line": 1, "column": 15