fix(compiler-ssr): fix input w/ v-bind="obj" codegen

This commit is contained in:
Evan You
2020-03-16 18:14:49 -04:00
parent 9eef37fa32
commit 3b40fc56db
4 changed files with 48 additions and 14 deletions

View File

@@ -52,6 +52,7 @@ export const enum NodeTypes {
JS_TEMPLATE_LITERAL,
JS_IF_STATEMENT,
JS_ASSIGNMENT_EXPRESSION,
JS_SEQUENCE_EXPRESSION,
JS_RETURN_STATEMENT
}
@@ -282,6 +283,7 @@ export type JSChildNode =
| ConditionalExpression
| CacheExpression
| AssignmentExpression
| SequenceExpression
export interface CallExpression extends Node {
type: NodeTypes.JS_CALL_EXPRESSION
@@ -344,6 +346,7 @@ export type SSRCodegenNode =
| IfStatement
| AssignmentExpression
| ReturnStatement
| SequenceExpression
export interface BlockStatement extends Node {
type: NodeTypes.JS_BLOCK_STATEMENT
@@ -368,6 +371,11 @@ export interface AssignmentExpression extends Node {
right: JSChildNode
}
export interface SequenceExpression extends Node {
type: NodeTypes.JS_SEQUENCE_EXPRESSION
expressions: JSChildNode[]
}
export interface ReturnStatement extends Node {
type: NodeTypes.JS_RETURN_STATEMENT
returns: TemplateChildNode | TemplateChildNode[] | JSChildNode
@@ -727,6 +735,16 @@ export function createAssignmentExpression(
}
}
export function createSequenceExpression(
expressions: SequenceExpression['expressions']
): SequenceExpression {
return {
type: NodeTypes.JS_SEQUENCE_EXPRESSION,
expressions,
loc: locStub
}
}
export function createReturnStatement(
returns: ReturnStatement['returns']
): ReturnStatement {