%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#ifndef SRC_NODE_PROCESS_H_ #define SRC_NODE_PROCESS_H_ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "node_snapshotable.h" #include "v8-fast-api-calls.h" #include "v8.h" namespace node { class Environment; class MemoryTracker; class ExternalReferenceRegistry; v8::MaybeLocal<v8::Object> CreateEnvVarProxy(v8::Local<v8::Context> context, v8::Isolate* isolate); // Most of the time, it's best to use `console.error` to write // to the process.stderr stream. However, in some cases, such as // when debugging the stream.Writable class or the process.nextTick // function, it is useful to bypass JavaScript entirely. void RawDebug(const v8::FunctionCallbackInfo<v8::Value>& args); v8::MaybeLocal<v8::Value> ProcessEmit(Environment* env, const char* event, v8::Local<v8::Value> message); v8::Maybe<bool> ProcessEmitWarningGeneric(Environment* env, const char* warning, const char* type = nullptr, const char* code = nullptr); template <typename... Args> inline v8::Maybe<bool> ProcessEmitWarning(Environment* env, const char* fmt, Args&&... args); v8::Maybe<bool> ProcessEmitExperimentalWarning(Environment* env, const char* warning); v8::Maybe<bool> ProcessEmitDeprecationWarning(Environment* env, const char* warning, const char* deprecation_code); v8::MaybeLocal<v8::Object> CreateProcessObject(Environment* env); void PatchProcessObject(const v8::FunctionCallbackInfo<v8::Value>& args); namespace process { class BindingData : public SnapshotableObject { public: void AddMethods(); static void RegisterExternalReferences(ExternalReferenceRegistry* registry); SERIALIZABLE_OBJECT_METHODS() static constexpr FastStringKey type_name{"node::process::BindingData"}; static constexpr EmbedderObjectType type_int = EmbedderObjectType::k_process_binding_data; BindingData(Environment* env, v8::Local<v8::Object> object); void MemoryInfo(MemoryTracker* tracker) const override; SET_MEMORY_INFO_NAME(BindingData) SET_SELF_SIZE(BindingData) static BindingData* FromV8Value(v8::Local<v8::Value> receiver); static void NumberImpl(BindingData* receiver); static void FastNumber(v8::Local<v8::Value> receiver) { NumberImpl(FromV8Value(receiver)); } static void SlowNumber(const v8::FunctionCallbackInfo<v8::Value>& args); static void BigIntImpl(BindingData* receiver); static void FastBigInt(v8::Local<v8::Value> receiver) { BigIntImpl(FromV8Value(receiver)); } static void SlowBigInt(const v8::FunctionCallbackInfo<v8::Value>& args); private: static constexpr size_t kBufferSize = std::max(sizeof(uint64_t), sizeof(uint32_t) * 3); v8::Global<v8::ArrayBuffer> array_buffer_; std::shared_ptr<v8::BackingStore> backing_store_; // These need to be static so that we have their addresses available to // register as external references in the snapshot at environment creation // time. static v8::CFunction fast_number_; static v8::CFunction fast_bigint_; }; } // namespace process } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #endif // SRC_NODE_PROCESS_H_