From 1bf236a07932307e4018dc6d376714d71783587f Mon Sep 17 00:00:00 2001
From: Hakim El Hattab <hakim.elhattab@gmail.com>
Date: Fri, 14 Aug 2015 23:16:59 +0200
Subject: [PATCH] fix object.keys call on non-object

---
 js/reveal.js | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/js/reveal.js b/js/reveal.js
index 738d8a97..7a000dc1 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3771,13 +3771,17 @@
 		// keyboard modifier key is present
 		if( activeElementIsCE || activeElementIsInput || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return;
 
-		// While paused only allow resume keyboard events;
-		// 'b', '.' or any key specifically mapped to togglePause
-		var resumeKeyCodes = [66,190,191].concat( Object.keys( config.keyboard ).map( function( key ) {
-			if( config.keyboard[key] === 'togglePause' ) {
-				return parseInt( key, 10 );
-			}
-		}));
+		// While paused only allow resume keyboard events; 'b', '.''
+		var resumeKeyCodes = [66,190,191];
+
+		// Custom key bindings for togglePause should be able to resume
+		if( typeof config.keyboard === 'object' ) {
+			resumeKeyCodes = resumeKeyCodes.concat( Object.keys( config.keyboard ).map( function( key ) {
+				if( config.keyboard[key] === 'togglePause' ) {
+					return parseInt( key, 10 );
+				}
+			}));
+		}
 
 		if( isPaused() && resumeKeyCodes.indexOf( event.keyCode ) === -1 ) {
 			return false;
-- 
GitLab