diff --git a/src/renderers/dom/client/utils/DOMChildrenOperations.js b/src/renderers/dom/client/utils/DOMChildrenOperations.js index c5c796325d088..e71266c559fdc 100644 --- a/src/renderers/dom/client/utils/DOMChildrenOperations.js +++ b/src/renderers/dom/client/utils/DOMChildrenOperations.js @@ -9,6 +9,8 @@ * @providesModule DOMChildrenOperations */ +/* globals MSApp */ + 'use strict'; var DOMLazyTree = require('DOMLazyTree'); @@ -35,7 +37,14 @@ function insertChildAt(parentNode, childNode, referenceNode) { // We rely exclusively on `insertBefore(node, null)` instead of also using // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so // we are careful to use `null`.) - parentNode.insertBefore(childNode, referenceNode); + + if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { + MSApp.execUnsafeLocalFunction(function() { + parentNode.insertBefore(childNode, referenceNode); + }); + } else { + parentNode.insertBefore(childNode, referenceNode); + } } function insertLazyTreeChildAt(parentNode, childTree, referenceNode) { diff --git a/src/renderers/dom/client/utils/DOMLazyTree.js b/src/renderers/dom/client/utils/DOMLazyTree.js index 4fbb2e0443848..38b63b4415954 100644 --- a/src/renderers/dom/client/utils/DOMLazyTree.js +++ b/src/renderers/dom/client/utils/DOMLazyTree.js @@ -9,6 +9,8 @@ * @providesModule DOMLazyTree */ +/* globals MSApp */ + 'use strict'; var setTextContent = require('setTextContent'); @@ -51,7 +53,14 @@ function insertTreeChildren(tree) { } function insertTreeBefore(parentNode, tree, referenceNode) { - parentNode.insertBefore(tree.node, referenceNode); + if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { + MSApp.execUnsafeLocalFunction(function() { + parentNode.insertBefore(tree.node, referenceNode); + }); + } else { + parentNode.insertBefore(tree.node, referenceNode); + } + insertTreeChildren(tree); }