From 37da6755ff4d570e24320a4833e2c5ddc1b10c04 Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Wed, 18 Dec 2013 18:52:36 -0800 Subject: [PATCH] fix($log): should work in IE8 In IE8, reading `console.log.apply` throws an error. Catching this errow now. Fixes #5400. Fixes #5147. --- src/ng/log.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/ng/log.js b/src/ng/log.js index c64e04f311ff..1d9a001a321b 100644 --- a/src/ng/log.js +++ b/src/ng/log.js @@ -139,9 +139,16 @@ function $LogProvider(){ function consoleLog(type) { var console = $window.console || {}, - logFn = console[type] || console.log || noop; + logFn = console[type] || console.log || noop, + hasApply = false; - if (logFn.apply) { + // Note: reading logFn.apply throws an error in IE11 in IE8 document mode. + // The reason behind this is that console.log has type "object" in IE8... + try { + hasApply = !! logFn.apply; + } catch (e) {} + + if (hasApply) { return function() { var args = []; forEach(arguments, function(arg) {