diff --git a/Classes/Loader.php b/Classes/Loader.php index ca2379878981a849a3a38e106d5e2e4dd59d1518..78e1c946255eb3710a4fa255bdd72d82b273bb8b 100644 --- a/Classes/Loader.php +++ b/Classes/Loader.php @@ -52,7 +52,7 @@ class Loader { * * @var array */ - protected $tinymceConfiguration = array(); + protected $tinymceConfiguration = []; /** * Initialization flag @@ -166,6 +166,9 @@ class Loader { $script = $GLOBALS['BACK_PATH'] . $pathToTinyMceExtension . 'Contrib/tinymce/tinymce.min.js'; $output = '<script type="text/javascript" src="' . $script . '"></script>'; + $script = $GLOBALS['BACK_PATH'] . $pathToTinyMceExtension . 'Contrib/WeakMap/WeakMap.js'; + $output .= '<script type="text/javascript" src="' . $script . '"></script>'; + $script = $GLOBALS['BACK_PATH'] . $pathToTinyMceExtension . 'Contrib/MutationObserver/MutationObserver.js'; $output .= '<script type="text/javascript" src="' . $script . '"></script>'; @@ -200,6 +203,9 @@ class Loader { $script = $GLOBALS['BACK_PATH'] . $pathToTinyMceExtension . 'Contrib/MutationObserver/MutationObserver.js'; $pageRenderer->addJsLibrary('MutationObserver', $script, 'text/javascript', FALSE, TRUE, '', TRUE); + $script = $GLOBALS['BACK_PATH'] . $pathToTinyMceExtension . 'Contrib/WeakMap/WeakMap.js'; + $pageRenderer->addJsLibrary('WeakMap', $script, 'text/javascript', FALSE, TRUE, '', TRUE); + $script = $GLOBALS['BACK_PATH'] . $pathToTinyMceExtension . 'Resources/Public/JavaScript/Loader.js'; $pageRenderer->addJsFile($script, 'text/javascript', FALSE, TRUE, '', TRUE); @@ -214,7 +220,7 @@ class Loader { * @return array */ protected function prepareTinyMCEConfiguration($configuration) { - $configurationArray = array(); + $configurationArray = []; // try to resolve a potential TYPO3 file path $configurationFile = GeneralUtility::getFileAbsFileName($configuration); diff --git a/Contrib/WeakMap/WeakMap.js b/Contrib/WeakMap/WeakMap.js new file mode 100644 index 0000000000000000000000000000000000000000..0540742aa30f4ae97da4ec4fd8c70faa08f17645 --- /dev/null +++ b/Contrib/WeakMap/WeakMap.js @@ -0,0 +1,46 @@ +/* + * Copyright 2012 The Polymer Authors. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +if (typeof WeakMap === 'undefined') { + (function() { + var defineProperty = Object.defineProperty; + var counter = Date.now() % 1e9; + + var WeakMap = function() { + this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__'); + }; + + WeakMap.prototype = { + set: function(key, value) { + var entry = key[this.name]; + if (entry && entry[0] === key) + entry[1] = value; + else + defineProperty(key, this.name, {value: [key, value], writable: true}); + return this; + }, + get: function(key) { + var entry; + return (entry = key[this.name]) && entry[0] === key ? + entry[1] : undefined; + }, + delete: function(key) { + var entry = key[this.name]; + if (!entry) return false; + var hasValue = entry[0] === key; + entry[0] = entry[1] = undefined; + return hasValue; + }, + has: function(key) { + var entry = key[this.name]; + if (!entry) return false; + return entry[0] === key; + } + }; + + window.WeakMap = WeakMap; + })(); +} diff --git a/Resources/Public/JavaScript/Loader.js b/Resources/Public/JavaScript/Loader.js index 4b9a2eef0e16b8ad2991e311161fb1b1772990be..a6e9a8586a93283a81b6473fcb803f02b8718b67 100644 --- a/Resources/Public/JavaScript/Loader.js +++ b/Resources/Public/JavaScript/Loader.js @@ -32,7 +32,7 @@ SG.TinyMceLoader = function(tinymce, options) { return console.error('Couldn\'t load dependency tinyMCE, break here.'); } - if (!MutationObserver) { + if (!window.MutationObserver) { return console.error('Couldn\'t load dependency MutationObserver, break here.') }