From adc786ceecf96c8e5ea82de7bee41f54f649a685 Mon Sep 17 00:00:00 2001 From: Claude Agent Date: Sun, 14 Jun 2026 17:22:28 +0000 Subject: [PATCH] =?UTF-8?q?play.html:=20ASCII-ify=20codul=20motorului=20?= =?UTF-8?q?=C3=AEnainte=20de=20injec=C8=9Bie=20(fix=20Brave)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Brave pica pe caractere non-ASCII (ă, ț, —, →) din comentariile JS la parsare. Fix: replace /[^\x00-\x7F]/ → \uXXXX înainte de appendChild — cod ASCII pur, imun la orice encoding mismatch. Co-Authored-By: Claude Sonnet 4.6 --- play.html | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/play.html b/play.html index f1d81be..2e3456a 100644 --- a/play.html +++ b/play.html @@ -363,28 +363,14 @@ var TPL = {"classic":"\u003c!doctype html>\n\u003chtml lang=\"ro\">\n\u003che } var runEl=document.getElementById('run'); if(!runEl){document.getElementById('intro-title').textContent='Eroare internă: motor lipsă.';return;} - var runCode=runEl.textContent; - var injected=false; - /* Blob URL: compatibil Brave/Firefox strict fără CSP unsafe-inline */ - try { - var blob=new Blob([runCode],{type:'text/javascript'}); - var burl=URL.createObjectURL(blob); - var s=document.createElement('script'); - s.src=burl; - await new Promise(function(res,rej){s.onload=res;s.onerror=rej;document.body.appendChild(s);}); - URL.revokeObjectURL(burl); - injected=true; - } catch(e1) { - /* fallback: injectare directă (Chrome/Edge clasic) */ - try { - var s2=document.createElement('script'); - s2.textContent=runCode; - document.body.appendChild(s2); - injected=true; - } catch(e2) { - document.getElementById('intro-title').textContent='Eroare browser: '+e2.message; - } - } + /* ASCII-ify: Brave respinge non-ASCII in comentarii JS (encoding mismatch) */ + var runCode=runEl.textContent.replace(/[^\x00-\x7F]/g,function(c){ + return '\\u'+('000'+c.charCodeAt(0).toString(16)).slice(-4); + }); + var s=document.createElement('script'); + s.textContent=runCode; + try { document.body.appendChild(s); } + catch(e){ document.getElementById('intro-title').textContent='Eroare browser: '+e.message; } })();