// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. // Copyright Joyent and Node contributors. All rights reserved. MIT license. import { notImplemented } from "internal:deno_node/polyfills/_utils.ts"; const { ops } = globalThis.__bootstrap.core; export function cachedDataVersionTag() { return ops.op_v8_cached_data_version_tag(); } export function getHeapCodeStatistics() { notImplemented("v8.getHeapCodeStatistics"); } export function getHeapSnapshot() { notImplemented("v8.getHeapSnapshot"); } export function getHeapSpaceStatistics() { notImplemented("v8.getHeapSpaceStatistics"); } const buffer = new Float64Array(14); export function getHeapStatistics() { ops.op_v8_get_heap_statistics(buffer); return { total_heap_size: buffer[0], total_heap_size_executable: buffer[1], total_physical_size: buffer[2], total_available_size: buffer[3], used_heap_size: buffer[4], heap_size_limit: buffer[5], malloced_memory: buffer[6], peak_malloced_memory: buffer[7], does_zap_garbage: buffer[8], number_of_native_contexts: buffer[9], number_of_detached_contexts: buffer[10], total_global_handles_size: buffer[11], used_global_handles_size: buffer[12], external_memory: buffer[13], }; } export function setFlagsFromString() { notImplemented("v8.setFlagsFromString"); } export function stopCoverage() { notImplemented("v8.stopCoverage"); } export function takeCoverage() { notImplemented("v8.takeCoverage"); } export function writeHeapSnapshot() { notImplemented("v8.writeHeapSnapshot"); } export function serialize() { notImplemented("v8.serialize"); } export function deserialize() { notImplemented("v8.deserialize"); } export class Serializer { constructor() { notImplemented("v8.Serializer.prototype.constructor"); } } export class Deserializer { constructor() { notImplemented("v8.Deserializer.prototype.constructor"); } } export class DefaultSerializer { constructor() { notImplemented("v8.DefaultSerializer.prototype.constructor"); } } export class DefaultDeserializer { constructor() { notImplemented("v8.DefaultDeserializer.prototype.constructor"); } } export const promiseHooks = { onInit() { notImplemented("v8.promiseHooks.onInit"); }, onSettled() { notImplemented("v8.promiseHooks.onSetttled"); }, onBefore() { notImplemented("v8.promiseHooks.onBefore"); }, createHook() { notImplemented("v8.promiseHooks.createHook"); }, }; export default { cachedDataVersionTag, getHeapCodeStatistics, getHeapSnapshot, getHeapSpaceStatistics, getHeapStatistics, setFlagsFromString, stopCoverage, takeCoverage, writeHeapSnapshot, serialize, deserialize, Serializer, Deserializer, DefaultSerializer, DefaultDeserializer, promiseHooks, };