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,
|
||||
rewriteUrl,
|
||||
} from "../shared";
|
||||
import type BareClientType from "@mercuryworkshop/bare-mux";
|
||||
import { BareClient as BareClientType } from "@mercuryworkshop/bare-mux";
|
||||
import { createWrapFn } from "./shared/wrap";
|
||||
import { NavigateEvent } from "./events";
|
||||
import type { URLMeta } from "../shared/rewriters/url";
|
||||
|
@ -378,6 +378,7 @@ export class ScramjetClient {
|
|||
return oldDescriptor && oldDescriptor.get.call(this.this);
|
||||
},
|
||||
set: function (v: T) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
||||
oldDescriptor && oldDescriptor.set.call(this.this, v);
|
||||
},
|
||||
};
|
||||
|
|
|
@ -306,7 +306,6 @@ export default function (client: ScramjetClient, self: typeof window) {
|
|||
"Node.prototype.parentElement",
|
||||
"Node.prototype.previousSibling",
|
||||
"Node.prototype.nextSibling",
|
||||
"Node.prototype.getRootNode",
|
||||
],
|
||||
{
|
||||
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", {
|
||||
apply(ctx) {
|
||||
if (ctx.args[1] === "text/html") {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue