Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | 87x 87x 87x 87x 87x 211x 211x 211x 2x 2x 209x 8x 211x 3x 2x 1x 1x 1x 1x 211x 153x 5x 153x 1x 211x 2x 2x 209x 87x 6x 5x 4x 1x 1x 1x | import { DirectiveTransform } from '../transform' import { createObjectProperty, createSimpleExpression, ExpressionNode, NodeTypes } from '../ast' import { createCompilerError, ErrorCodes } from '../errors' import { camelize } from '@vue/shared' import { CAMELIZE } from '../runtimeHelpers' // v-bind without arg is handled directly in ./transformElements.ts due to it affecting // codegen for the entire props object. This transform here is only for v-bind // *with* args. export const transformBind: DirectiveTransform = (dir, _node, context) => { const { exp, modifiers, loc } = dir const arg = dir.arg! if (arg.type !== NodeTypes.SIMPLE_EXPRESSION) { arg.children.unshift(`(`) arg.children.push(`) || ""`) } else if (!arg.isStatic) { arg.content = `${arg.content} || ""` } // .sync is replaced by v-model:arg if (modifiers.includes('camel')) { if (arg.type === NodeTypes.SIMPLE_EXPRESSION) { if (arg.isStatic) { arg.content = camelize(arg.content) } else { arg.content = `${context.helperString(CAMELIZE)}(${arg.content})` } } else { arg.children.unshift(`${context.helperString(CAMELIZE)}(`) arg.children.push(`)`) } } if (!context.inSSR) { if (modifiers.includes('prop')) { injectPrefix(arg, '.') } if (modifiers.includes('attr')) { injectPrefix(arg, '^') } } if ( !exp || (exp.type === NodeTypes.SIMPLE_EXPRESSION && !exp.content.trim()) ) { context.onError(createCompilerError(ErrorCodes.X_V_BIND_NO_EXPRESSION, loc)) return { props: [createObjectProperty(arg, createSimpleExpression('', true, loc))] } } return { props: [createObjectProperty(arg, exp)] } } const injectPrefix = (arg: ExpressionNode, prefix: string) => { if (arg.type === NodeTypes.SIMPLE_EXPRESSION) { if (arg.isStatic) { arg.content = prefix + arg.content } else { arg.content = `\`${prefix}\${${arg.content}}\`` } } else { arg.children.unshift(`'${prefix}' + (`) arg.children.push(`)`) } } |