From a64a07dfbb6420216e7c3e95498c5c9b63f4636e Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Sun, 8 Mar 2015 18:38:01 +0100 Subject: [PATCH] jsduck: Refactor example iframe to catch uncaught errors * Make logging function not depend on 'mw' existing. * Add window.onerror handler. * Keep exporting to mw.log because that's what existing examples use and is what uses should copy for interoperability with the regular runtime. Change-Id: I2925532035974343125e34084f9ac7c8dd1fa279 --- maintenance/jsduck/eg-iframe.html | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/maintenance/jsduck/eg-iframe.html b/maintenance/jsduck/eg-iframe.html index 0792c2491a..50d7921e3c 100644 --- a/maintenance/jsduck/eg-iframe.html +++ b/maintenance/jsduck/eg-iframe.html @@ -48,9 +48,9 @@ /** * Basic log console for the example iframe in documentation pages. */ - ( function () { + var log = ( function () { var pre; - mw.log = function () { + return function () { var str, i, len, line; if ( !pre ) { pre = document.createElement( 'pre' ); @@ -70,6 +70,14 @@ }; }() ); + if ( window.mw ) { + mw.log = log; + } + + window.onerror = function ( error, filePath, linerNr ) { + log( filePath + ':' + linerNr ); + }; + /** * Method called by jsduck to execute the example code. */ @@ -78,7 +86,7 @@ eval( code ); callback && callback( true ); } catch ( e ) { - mw.log( 'Uncaught ' + e ); + log( 'Uncaught ' + e ); callback && callback( false, e ); throw e; } -- 2.20.1