Dan Abramov
7 years ago
committed by
GitHub
2 changed files with 48 additions and 0 deletions
@ -0,0 +1,45 @@ |
|||
/** |
|||
* Copyright (c) 2013-present, Facebook, Inc. |
|||
* |
|||
* @emails react-core |
|||
* @flow |
|||
*/ |
|||
|
|||
// This is not pretty.
|
|||
// See https://github.com/facebook/react/issues/11538#issuecomment-417504600
|
|||
// We need this because we don't even offer official translations.
|
|||
// https://github.com/facebook/react/issues/12460
|
|||
|
|||
export default function patchDOMForGoogleTranslate() { |
|||
const originalRemoveChild = Node.prototype.removeChild; |
|||
// $FlowFixMe Intentionally monkepatching.
|
|||
Node.prototype.removeChild = function(child) { |
|||
if (child.parentNode !== this) { |
|||
if (typeof console !== 'undefined') { |
|||
console.error( |
|||
'Cannot remove a child from a different parent', |
|||
child, |
|||
this, |
|||
); |
|||
} |
|||
return child; |
|||
} |
|||
return originalRemoveChild.apply(this, arguments); |
|||
}; |
|||
|
|||
const originalInsertBefore = Node.prototype.insertBefore; |
|||
// $FlowFixMe Intentionally monkepatching.
|
|||
Node.prototype.insertBefore = function(newNode, referenceNode) { |
|||
if (referenceNode && referenceNode.parentNode !== this) { |
|||
if (typeof console !== 'undefined') { |
|||
console.error( |
|||
'Cannot insert before a reference node from a different parent', |
|||
referenceNode, |
|||
this, |
|||
); |
|||
} |
|||
return newNode; |
|||
} |
|||
return originalInsertBefore.apply(this, arguments); |
|||
}; |
|||
} |
Loading…
Reference in new issue