--- sidebar_label: ExecutionContext.queryObjects --- # ExecutionContext.queryObjects() method Iterates through the JavaScript heap and finds all the objects with the given prototype. **Signature:** ```typescript class ExecutionContext { queryObjects( prototypeHandle: JSHandle ): Promise>; } ``` ## Parameters | Parameter | Type | Description | | --------------- | ---------------------------------------------------- | -------------------------------- | | prototypeHandle | [JSHandle](./puppeteer.jshandle.md)<Prototype> | a handle to the object prototype | **Returns:** Promise<[HandleFor](./puppeteer.handlefor.md)<Prototype\[\]>> A handle to an array of objects with the given prototype. ## Example ```ts // Create a Map object await page.evaluate(() => (window.map = new Map())); // Get a handle to the Map object prototype const mapPrototype = await page.evaluateHandle(() => Map.prototype); // Query all map instances into an array const mapInstances = await page.queryObjects(mapPrototype); // Count amount of map objects in heap const count = await page.evaluate(maps => maps.length, mapInstances); await mapInstances.dispose(); await mapPrototype.dispose(); ```