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 | 89x 89x 89x 89x 89x 212x 212x 212x 2x 2x 210x 8x 212x 3x 2x 1x 1x 1x 1x 212x 154x 5x 154x 1x 212x 2x 2x 210x 89x 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(`)`) } } |