`$computed can only be used as the initializer`
)
})
+
+ test('not transform the prototype attributes', () => {
+ const { code } = transform(`
+ const hasOwnProperty = Object.prototype.hasOwnProperty
+ const hasOwn = (val, key) => hasOwnProperty.call(val, key)
+ `)
+ expect(code).not.toMatch('.value')
+ })
})
walkFunctionParams
} from '@vue/compiler-core'
import { parse, ParserPlugin } from '@babel/parser'
-import { babelParserDefaultPlugins } from '@vue/shared'
+import { babelParserDefaultPlugins, hasOwn } from '@vue/shared'
const TO_VAR_SYMBOL = '$'
const TO_REF_SYMBOL = '$$'
parent: Node,
parentStack: Node[]
): boolean {
- if (id.name in scope) {
+ if (hasOwn(scope, id.name)) {
if (scope[id.name]) {
if (isStaticProperty(parent) && parent.shorthand) {
// let binding used in a property shorthand