summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts')
-rw-r--r--remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts34
1 files changed, 14 insertions, 20 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts
index 7104601553..10f564f78a 100644
--- a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts
+++ b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/JSHandle.ts
@@ -12,29 +12,28 @@ import {UnsupportedOperation} from '../common/Errors.js';
import {BidiDeserializer} from './Deserializer.js';
import type {BidiRealm} from './Realm.js';
-import type {Sandbox} from './Sandbox.js';
-import {releaseReference} from './util.js';
/**
* @internal
*/
export class BidiJSHandle<T = unknown> extends JSHandle<T> {
- #disposed = false;
- readonly #sandbox: Sandbox;
+ static from<T>(
+ value: Bidi.Script.RemoteValue,
+ realm: BidiRealm
+ ): BidiJSHandle<T> {
+ return new BidiJSHandle(value, realm);
+ }
+
readonly #remoteValue: Bidi.Script.RemoteValue;
- constructor(sandbox: Sandbox, remoteValue: Bidi.Script.RemoteValue) {
- super();
- this.#sandbox = sandbox;
- this.#remoteValue = remoteValue;
- }
+ override readonly realm: BidiRealm;
- context(): BidiRealm {
- return this.realm.environment.context();
- }
+ #disposed = false;
- override get realm(): Sandbox {
- return this.#sandbox;
+ constructor(value: Bidi.Script.RemoteValue, realm: BidiRealm) {
+ super();
+ this.#remoteValue = value;
+ this.realm = realm;
}
override get disposed(): boolean {
@@ -56,12 +55,7 @@ export class BidiJSHandle<T = unknown> extends JSHandle<T> {
return;
}
this.#disposed = true;
- if ('handle' in this.#remoteValue) {
- await releaseReference(
- this.context(),
- this.#remoteValue as Bidi.Script.RemoteReference
- );
- }
+ await this.realm.destroyHandles([this]);
}
get isPrimitiveValue(): boolean {