fix(ref-transform): not transform the prototype attributes. (#4503)
fix #4502
This commit is contained in:
		
							parent
							
								
									12acf5102c
								
							
						
					
					
						commit
						0178f4ed31
					
				@ -395,4 +395,12 @@ describe('errors', () => {
 | 
			
		||||
      `$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')
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,7 @@ import {
 | 
			
		||||
  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 = '$$'
 | 
			
		||||
@ -309,7 +309,7 @@ export function transformAST(
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user