Improved error reporting when embedMachine() fails (eg, due to browser restrictions)

This commit is contained in:
Jeff Parsons 2014-10-30 09:54:09 -07:00 • committed by jeffpar
commit 29a3aceeb0
9 changed files with 15 additions and 14 deletions

View file

@ -159,11 +159,11 @@ a.i("note: frequency and history commands operate only when breakpoints are set"
$.prototype.start=function(){for(var a in this.Q)if("cpu"!=a)for(var b=0;b<this.Q[a].length;b++){var c=this.Q[a][b];c&&c.start&&c.start()}};$.prototype.stop=function(a,b){for(var c in this.Q)if("cpu"!=c)for(var d=0;d<this.Q[c].length;d++){var e=this.Q[c][d];e&&e.stop&&e.stop(a,b)}};$.prototype.I=function(a,b,c,d){switch(c){case "reset":return this.r[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Q[b]?a.Q[b][0]:null}
function pb(a){var b=null,c;for(c in a.Q)for(var d=0;d<a.Q[c].length;d++){var e=a.Q[c][d];if(e){if(!J(e)){J(e,function(a){return function(){pb(a)}}(a));return}"cpu"==c?b=e:e.ba&&e.ba(!0,a)}}a.P();a.i("C1Pjs v1.15.7\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.ba(!0,a)}
x(function(){for(var a=G(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var q=d.modules[m];if(!m){if("cpu"!=q.type)break;k=q.start;l=q.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=C(q.refID,d.id)){var D=q.type;void 0===g[D]&&(g[D]=[]);g[D].push(e);e.V&&void 0!==q.start&&e.V(h,q.start,q.end,g.cpu[0])}else{t('no component for <module refid="'+q.refID+'">');return}}if(void 0===h){t('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,k,l,g.cpu[0]);k=new $(d,g);if(l=C("panel",d.id))if(g.panel=[l],l.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.Xb=l.Xb,e.i=l.i,e.sc=l.sc)}F(k,c);pb(k)}});var qb=0;function rb(a,b,c,d,e,g){e("Loading "+a+"...");s(a,null,function(h,k,l){l?g(k,null):sb(k,a,b,c,d,e,g)})}
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,k,l,g.cpu[0]);k=new $(d,g);if(l=C("panel",d.id))if(g.panel=[l],l.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.Xb=l.Xb,e.i=l.i,e.sc=l.sc)}F(k,c);pb(k)}});var qb=0;function rb(a,b,c,d,e,g){e("Loading "+a+"...");s(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):sb(k,a,b,c,d,e,g)})}
function sb(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(k?" url=$2"+k+"$2":""))}k=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(D){k=
null,a=D.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?tb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function tb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");s(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);tb(a,b,c)}})}else c(a,null)}
function ub(a,b,c){function d(a){if(void 0===k){var b=h&&G(h,"machine-warning");k=b&&b[0]||null}k&&(k.innerHTML=da(a))}function e(a){d("Error: "+a);l&&g();l=!1}function g(){0==--qb&&ia(!0)}var h,k,l=!0;qb++;try{if(h=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var m=function(a,k){if(k){var l=function(a,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(h.outerHTML=m,g()):e("transformNodeToObject failed")}else window.document.implementation&&
function ub(a,b,c){function d(a){if(void 0===k){var b=h&&G(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=da(a))}function e(a){d("Error: "+a);l&&g();l=!1}function g(){0==--qb&&ia(!0)}var h,k,l=!0;qb++;try{if(h=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var m=function(a,k){if(k){var l=function(a,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(h.outerHTML=m,g()):e("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,window.document))?(h.parentNode.replaceChild(m,h),g()):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e("failed to load XSL file: "+c);else e(a)};k?rb(c,null,null,!1,d,l):e("failed to load XML file: "+b)}else e(a)};"<"!=b.substr(0,1)?rb(b,a,void 0,!0,d,m):sb(b,null,a,void 0,!1,d,m)}else e("failed to find machine element: "+a)}catch(q){e(q.message)}return l}
window.embedC1P=function(a,b,c){return ub(a,b,c)};window.enableEvents=ia;window.sendEvent=ja;ia(!1);})();//@ sourceMappingURL=/tmp/c1pjs/1.15.7/c1p-dbg.map