mirror of
https://github.com/MercuryWorkshop/scramjet.git
synced 2025-05-13 22:40:01 -04:00
fix: node.getrootnode
This commit is contained in:
parent
ee85b48d33
commit
c2570c1d86
2 changed files with 14 additions and 2 deletions
|
@ -13,7 +13,7 @@ import {
|
||||||
unrewriteUrl,
|
unrewriteUrl,
|
||||||
rewriteUrl,
|
rewriteUrl,
|
||||||
} from "../shared";
|
} from "../shared";
|
||||||
import type BareClientType from "@mercuryworkshop/bare-mux";
|
import { BareClient as BareClientType } from "@mercuryworkshop/bare-mux";
|
||||||
import { createWrapFn } from "./shared/wrap";
|
import { createWrapFn } from "./shared/wrap";
|
||||||
import { NavigateEvent } from "./events";
|
import { NavigateEvent } from "./events";
|
||||||
import type { URLMeta } from "../shared/rewriters/url";
|
import type { URLMeta } from "../shared/rewriters/url";
|
||||||
|
@ -378,6 +378,7 @@ export class ScramjetClient {
|
||||||
return oldDescriptor && oldDescriptor.get.call(this.this);
|
return oldDescriptor && oldDescriptor.get.call(this.this);
|
||||||
},
|
},
|
||||||
set: function (v: T) {
|
set: function (v: T) {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
||||||
oldDescriptor && oldDescriptor.set.call(this.this, v);
|
oldDescriptor && oldDescriptor.set.call(this.this, v);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -306,7 +306,6 @@ export default function (client: ScramjetClient, self: typeof window) {
|
||||||
"Node.prototype.parentElement",
|
"Node.prototype.parentElement",
|
||||||
"Node.prototype.previousSibling",
|
"Node.prototype.previousSibling",
|
||||||
"Node.prototype.nextSibling",
|
"Node.prototype.nextSibling",
|
||||||
"Node.prototype.getRootNode",
|
|
||||||
],
|
],
|
||||||
{
|
{
|
||||||
get(ctx) {
|
get(ctx) {
|
||||||
|
@ -321,6 +320,18 @@ export default function (client: ScramjetClient, self: typeof window) {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
client.Proxy("Node.prototype.getRootNode", {
|
||||||
|
apply(ctx) {
|
||||||
|
const n = ctx.call() as Node;
|
||||||
|
if (!(n instanceof Document)) return ctx.return(n);
|
||||||
|
|
||||||
|
const scram: ScramjetClient = n[SCRAMJETCLIENT];
|
||||||
|
if (!scram) return ctx.return(n); // ??
|
||||||
|
|
||||||
|
return ctx.return(scram.documentProxy);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
client.Proxy("DOMParser.prototype.parseFromString", {
|
client.Proxy("DOMParser.prototype.parseFromString", {
|
||||||
apply(ctx) {
|
apply(ctx) {
|
||||||
if (ctx.args[1] === "text/html") {
|
if (ctx.args[1] === "text/html") {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue