Add DOM primitives (dom-set-prop, dom-call-method, dom-post-message), bump SW cache v2, remove video demo
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 6m57s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 6m57s
New platform_js primitives for direct DOM property/method access and cross-origin iframe communication. Service worker static cache bumped to v2 to flush stale assets. Removed experimental video embed from header island, routes, and home page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
// =========================================================================
|
||||
|
||||
var NIL = Object.freeze({ _nil: true, toString: function() { return "nil"; } });
|
||||
var SX_VERSION = "2026-03-11T21:02:07Z";
|
||||
var SX_VERSION = "2026-03-11T21:11:04Z";
|
||||
|
||||
function isNil(x) { return x === NIL || x === null || x === undefined; }
|
||||
function isSxTruthy(x) { return x !== false && !isNil(x); }
|
||||
@@ -3999,12 +3999,20 @@ return (isSxTruthy((_batchDepth == 0)) ? (function() {
|
||||
function domCallMethod() {
|
||||
var obj = arguments[0], method = arguments[1];
|
||||
var args = Array.prototype.slice.call(arguments, 2);
|
||||
console.log("[sx] dom-call-method:", obj, method, args);
|
||||
if (obj && typeof obj[method] === 'function') {
|
||||
try { return obj[method].apply(obj, args); }
|
||||
catch(e) { console.error("[sx] dom-call-method error:", e); return NIL; }
|
||||
}
|
||||
console.warn("[sx] dom-call-method: method not found or obj null", obj, method);
|
||||
return NIL;
|
||||
}
|
||||
// Post a message to an iframe's contentWindow without exposing the cross-origin
|
||||
// Window object to the SX evaluator (which would trigger _thunk access errors).
|
||||
function domPostMessage(iframe, msg, origin) {
|
||||
try {
|
||||
if (iframe && iframe.contentWindow) {
|
||||
iframe.contentWindow.postMessage(msg, origin || '*');
|
||||
}
|
||||
} catch(e) { console.error("[sx] domPostMessage error:", e); }
|
||||
return NIL;
|
||||
}
|
||||
|
||||
@@ -5213,6 +5221,7 @@ return (isSxTruthy((_batchDepth == 0)) ? (function() {
|
||||
PRIMITIVES["dom-get-prop"] = domGetProp;
|
||||
PRIMITIVES["dom-set-prop"] = domSetProp;
|
||||
PRIMITIVES["dom-call-method"] = domCallMethod;
|
||||
PRIMITIVES["dom-post-message"] = domPostMessage;
|
||||
PRIMITIVES["stop-propagation"] = stopPropagation_;
|
||||
PRIMITIVES["error-message"] = errorMessage;
|
||||
PRIMITIVES["schedule-idle"] = scheduleIdle;
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var IDB_NAME = "sx-offline";
|
||||
var IDB_VERSION = 1;
|
||||
var IDB_STORE = "responses";
|
||||
var STATIC_CACHE = "sx-static-v1";
|
||||
var STATIC_CACHE = "sx-static-v2";
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// IndexedDB helpers
|
||||
|
||||
Reference in New Issue
Block a user