:: Bug Report [script] /*! <> macro for SugarCube */ !function(){"use strict";var requiredSugarCubeBuild=3805;if(!version||!version.build||version.build> macro requires SugarCube build "+requiredSugarCubeBuild+" or greater, aborting load");macros.add("bugreport",{version:{major:6,minor:0,patch:0},handler:function(){function serializeVariables(varObj,diffObj,doSort){function renderDiff(diff,orig){for(var keys=Object.keys(diff||{}),render=orig?clone(orig):{},i=0,klen=keys.length;klen>i;i++){var p=keys[i],diffP=diff[p];if(diffP===Util.DiffOp.Delete)delete render[p];else if(Array.isArray(diffP))switch(diffP[0]){case Util.DiffOp.SpliceArray:try{render.splice(diffP[1],1+(diffP[2]-diffP[1]))}catch(e){}break;case Util.DiffOp.Copy:render[p]=clone(diffP[1]);break;case Util.DiffOp.CopyDate:render[p]=new Date(diffP[1])}else{var recurse=renderDiff(diffP,render[p]);0!==Object.keys(recurse).length&&(render[p]=recurse)}}return render}var varList=[],diff=renderDiff(Util.diff(varObj,diffObj));for(var p in diff){var sName="$"+(-1===p.search(/[^\w]/)?p:'"'+p+'"');varList.push(sName+"="+JSON.stringify(diff[p]))}return doSort&&("function"==typeof doSort?varList.sort(doSort):varList.sort()),0!==varList.length?varList.join(", "):""}var srcMatch,passages,varsPre,varsPost,dialog,dataEl,info=null!=this.args[0]&&tale.has(this.args[0])?tale.get(this.args[0]):null,last=state.length-1,source=unescape(window.location);null!==(srcMatch=/\/([^\/]+)$/.exec(source))&&(source=srcMatch[1]),passages=[];for(var i=0;last>=i;i++)passages.push('"'+state.history[i].title+'"');passages=passages.join(", "),varsPre=serializeVariables(state.history[0].variables,state.history[last].variables),varsPost=serializeVariables(state.history[last].variables,state.active.variables),dialog=UISystem.setup("bugreport"),dialog.innerHTML=(null!==info?'
':"")+'
Bug report: [Select]
'+(/applewebkit|chrome/.test(browser.userAgent)?"":'
 
'),dataEl=dialog.querySelector("#bugreport-data"),null!==info&&new Wikifier(dialog.querySelector("#bugreport-info"),info.processText()),jQuery("#bugreport-data-select").on("click",function(thisp){return function(){thisp.self.selectData(dataEl)}}(this)),insertText(dataEl,"[spoiler][code]"),insertElement(dataEl,"br"),insertText(dataEl,"SOURCE: "+source),insertElement(dataEl,"br"),insertElement(dataEl,"br"),insertText(dataEl,"PASSAGES:"),insertElement(dataEl,"br"),insertText(dataEl,passages),insertElement(dataEl,"br"),insertElement(dataEl,"br"),insertText(dataEl,"VARIABLES (PRE-EXECUTION):"),insertElement(dataEl,"br"),varsPre&&(insertText(dataEl,varsPre),insertElement(dataEl,"br")),insertElement(dataEl,"br"),insertText(dataEl,"VARIABLES (POST-EXECUTION):"),insertElement(dataEl,"br"),varsPost&&(insertText(dataEl,varsPost),insertElement(dataEl,"br")),insertText(dataEl,"[/code][/spoiler]"),UISystem.open()},selectData:function(e){if(window.getSelection){var s=window.getSelection();if(s.setBaseAndExtent)s.setBaseAndExtent(e,0,e,e.innerText.length-1);else{window.opera&&"
"===e.innerHTML.substring(e.innerHTML.length-4)&&(e.innerHTML+=" ");var r=document.createRange();r.selectNodeContents(e),s.removeAllRanges(),s.addRange(r)}}else if(document.getSelection){var s=document.getSelection(),r=document.createRange();r.selectNodeContents(e),s.removeAllRanges(),s.addRange(r)}else if(document.selection){var r=document.body.createTextRange();r.moveToElementText(e),r.select()}}})}();