From d47147fb6ad229b1c039aff9d0959b6e281f4df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 14 Feb 2023 17:38:45 +0100 Subject: feat(ext/node): embed std/node into the snapshot (#17724) This commit moves "deno_std/node" in "ext/node" crate. The code is transpiled and snapshotted during the build process. During the first pass a minimal amount of work was done to create the snapshot, a lot of code in "ext/node" depends on presence of "Deno" global. This code will be gradually fixed in the follow up PRs to migrate it to import relevant APIs from "internal:" modules. Currently the code from snapshot is not used in any way, and all Node/npm compatibility still uses code from "https://deno.land/std/node" (or from the location specified by "DENO_NODE_COMPAT_URL"). This will also be handled in a follow up PRs. --------- Co-authored-by: crowlkats Co-authored-by: Divy Srivastava Co-authored-by: Yoshiya Hinosawa --- ext/node/polyfills/v8.ts | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 ext/node/polyfills/v8.ts (limited to 'ext/node/polyfills/v8.ts') diff --git a/ext/node/polyfills/v8.ts b/ext/node/polyfills/v8.ts new file mode 100644 index 000000000..f186ff023 --- /dev/null +++ b/ext/node/polyfills/v8.ts @@ -0,0 +1,90 @@ +// 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"; + +export function cachedDataVersionTag() { + notImplemented("v8.cachedDataVersionTag"); +} +export function getHeapCodeStatistics() { + notImplemented("v8.getHeapCodeStatistics"); +} +export function getHeapSnapshot() { + notImplemented("v8.getHeapSnapshot"); +} +export function getHeapSpaceStatistics() { + notImplemented("v8.getHeapSpaceStatistics"); +} +export function getHeapStatistics() { + notImplemented("v8.getHeapStatistics"); +} +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, +}; -- cgit v1.2.3