Procházet zdrojové kódy

chore: remove no longer used cloneNode implementation in nodeOps

Evan You před 3 roky
rodič
revize
ab8bfac0a1

+ 0 - 9
packages/runtime-dom/__tests__/nodeOps.spec.ts

@@ -1,15 +1,6 @@
 import { nodeOps, svgNS } from '../src/nodeOps'
 
 describe('runtime-dom: node-ops', () => {
-  test('the _value property should be cloned', () => {
-    const el = nodeOps.createElement('input') as HTMLDivElement & {
-      _value: any
-    }
-    el._value = 1
-    const cloned = nodeOps.cloneNode!(el) as HTMLDivElement & { _value: any }
-    expect(cloned._value).toBe(1)
-  })
-
   test("the <select>'s multiple attr should be set in createElement", () => {
     const el = nodeOps.createElement('select', false, undefined, {
       multiple: ''

+ 0 - 17
packages/runtime-dom/src/nodeOps.ts

@@ -52,23 +52,6 @@ export const nodeOps: Omit<RendererOptions<Node, Element>, 'patchProp'> = {
     el.setAttribute(id, '')
   },
 
-  cloneNode(el) {
-    const cloned = el.cloneNode(true)
-    // #3072
-    // - in `patchDOMProp`, we store the actual value in the `el._value` property.
-    // - normally, elements using `:value` bindings will not be hoisted, but if
-    //   the bound value is a constant, e.g. `:value="true"` - they do get
-    //   hoisted.
-    // - in production, hoisted nodes are cloned when subsequent inserts, but
-    //   cloneNode() does not copy the custom property we attached.
-    // - This may need to account for other custom DOM properties we attach to
-    //   elements in addition to `_value` in the future.
-    if (`_value` in el) {
-      ;(cloned as any)._value = (el as any)._value
-    }
-    return cloned
-  },
-
   // __UNSAFE__
   // Reason: innerHTML.
   // Static content here can only come from compiled templates.