Ver Fonte

fix exception when destroying uninitialized reveal instance (closes #3593)

Hakim El Hattab há 1 ano atrás
pai
commit
0799c8f674
5 ficheiros alterados com 9 adições e 0 exclusões
  1. 0 0
      dist/reveal.esm.js
  2. 0 0
      dist/reveal.esm.js.map
  3. 0 0
      dist/reveal.js
  4. 0 0
      dist/reveal.js.map
  5. 9 0
      js/reveal.js

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/reveal.esm.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/reveal.esm.js.map


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/reveal.js


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 0
dist/reveal.js.map


+ 9 - 0
js/reveal.js

@@ -51,6 +51,9 @@ export default function( revealElement, options ) {
 	// Configuration defaults, can be overridden at initialization time
 	// Configuration defaults, can be overridden at initialization time
 	let config = {},
 	let config = {},
 
 
+		// Flags if initialize() has been invoked for this reveal instance
+		initialized = false,
+
 		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
 		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
 		ready = false,
 		ready = false,
 
 
@@ -127,6 +130,8 @@ export default function( revealElement, options ) {
 
 
 		if( !revealElement ) throw 'Unable to find presentation root (<div class="reveal">).';
 		if( !revealElement ) throw 'Unable to find presentation root (<div class="reveal">).';
 
 
+		initialized = true;
+
 		// Cache references to key DOM elements
 		// Cache references to key DOM elements
 		dom.wrapper = revealElement;
 		dom.wrapper = revealElement;
 		dom.slides = revealElement.querySelector( '.slides' );
 		dom.slides = revealElement.querySelector( '.slides' );
@@ -604,6 +609,10 @@ export default function( revealElement, options ) {
 	 */
 	 */
 	function destroy() {
 	function destroy() {
 
 
+		// There's nothing to destroy if this instance hasn't been
+		// initialized yet
+		if( initialized === false ) return;
+
 		removeEventListeners();
 		removeEventListeners();
 		cancelAutoSlide();
 		cancelAutoSlide();
 		disablePreviewLinks();
 		disablePreviewLinks();

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff