GIF89; GIF89; %PDF- %PDF- Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.129: ~ $
// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef INCLUDE_V8_SNAPSHOT_H_
#define INCLUDE_V8_SNAPSHOT_H_

#include "v8-internal.h"      // NOLINT(build/include_directory)
#include "v8-isolate.h"       // NOLINT(build/include_directory)
#include "v8-local-handle.h"  // NOLINT(build/include_directory)
#include "v8config.h"         // NOLINT(build/include_directory)

namespace v8 {

class Object;

namespace internal {
class SnapshotCreatorImpl;
}  // namespace internal

class V8_EXPORT StartupData {
 public:
  /**
   * Whether the data created can be rehashed and and the hash seed can be
   * recomputed when deserialized.
   * Only valid for StartupData returned by SnapshotCreator::CreateBlob().
   */
  bool CanBeRehashed() const;
  /**
   * Allows embedders to verify whether the data is valid for the current
   * V8 instance.
   */
  bool IsValid() const;

  const char* data;
  int raw_size;
};

/**
 * Callback and supporting data used in SnapshotCreator to implement embedder
 * logic to serialize internal fields of v8::Objects.
 * Internal fields that directly reference V8 objects are serialized without
 * calling this callback. Internal fields that contain aligned pointers are
 * serialized by this callback if it returns non-zero result. Otherwise it is
 * serialized verbatim.
 */
struct SerializeInternalFieldsCallback {
  using CallbackFunction = StartupData (*)(Local<Object> holder, int index,
                                           void* data);
  SerializeInternalFieldsCallback(CallbackFunction function = nullptr,
                                  void* data_arg = nullptr)
      : callback(function), data(data_arg) {}
  CallbackFunction callback;
  void* data;
};

/**
 * Similar to SerializeInternalFieldsCallback, but works with the embedder data
 * in a v8::Context.
 */
struct SerializeContextDataCallback {
  using CallbackFunction = StartupData (*)(Local<Context> holder, int index,
                                           void* data);
  SerializeContextDataCallback(CallbackFunction function = nullptr,
                               void* data_arg = nullptr)
      : callback(function), data(data_arg) {}
  CallbackFunction callback;
  void* data;
};

/**
 * Callback and supporting data used to implement embedder logic to deserialize
 * internal fields of v8::Objects.
 */
struct DeserializeInternalFieldsCallback {
  using CallbackFunction = void (*)(Local<Object> holder, int index,
                                    StartupData payload, void* data);
  DeserializeInternalFieldsCallback(CallbackFunction function = nullptr,
                                    void* data_arg = nullptr)
      : callback(function), data(data_arg) {}

  CallbackFunction callback;
  void* data;
};

/**
 * Similar to DeserializeInternalFieldsCallback, but works with the embedder
 * data in a v8::Context.
 */
struct DeserializeContextDataCallback {
  using CallbackFunction = void (*)(Local<Context> holder, int index,
                                    StartupData payload, void* data);
  DeserializeContextDataCallback(CallbackFunction function = nullptr,
                                 void* data_arg = nullptr)
      : callback(function), data(data_arg) {}
  CallbackFunction callback;
  void* data;
};

/**
 * Helper class to create a snapshot data blob.
 *
 * The Isolate used by a SnapshotCreator is owned by it, and will be entered
 * and exited by the constructor and destructor, respectively; The destructor
 * will also destroy the Isolate. Experimental language features, including
 * those available by default, are not available while creating a snapshot.
 */
class V8_EXPORT SnapshotCreator {
 public:
  enum class FunctionCodeHandling { kClear, kKeep };

  /**
   * Initialize and enter an isolate, and set it up for serialization.
   * The isolate is either created from scratch or from an existing snapshot.
   * The caller keeps ownership of the argument snapshot.
   * \param existing_blob existing snapshot from which to create this one.
   * \param external_references a null-terminated array of external references
   *        that must be equivalent to CreateParams::external_references.
   * \param owns_isolate whether this SnapshotCreator should call
   *        v8::Isolate::Dispose() during its destructor.
   */
  V8_DEPRECATE_SOON("Use the version that passes CreateParams instead.")
  explicit SnapshotCreator(Isolate* isolate,
                           const intptr_t* external_references = nullptr,
                           const StartupData* existing_blob = nullptr,
                           bool owns_isolate = true);

  /**
   * Create and enter an isolate, and set it up for serialization.
   * The isolate is either created from scratch or from an existing snapshot.
   * The caller keeps ownership of the argument snapshot.
   * \param existing_blob existing snapshot from which to create this one.
   * \param external_references a null-terminated array of external references
   *        that must be equivalent to CreateParams::external_references.
   */
  V8_DEPRECATE_SOON("Use the version that passes CreateParams instead.")
  explicit SnapshotCreator(const intptr_t* external_references = nullptr,
                           const StartupData* existing_blob = nullptr);

  /**
   * Creates an Isolate for serialization and enters it. The creator fully owns
   * the Isolate and will invoke `v8::Isolate::Dispose()` during destruction.
   *
   * \param params The parameters to initialize the Isolate for. Details:
   *               - `params.external_references` are expected to be a
   *                 null-terminated array of external references.
   *               - `params.existing_blob` is an optional snapshot blob from
   *                 which can be used to initialize the new blob.
   */
  explicit SnapshotCreator(const v8::Isolate::CreateParams& params);

  /**
   * Initializes an Isolate for serialization and enters it. The creator does
   * not own the Isolate but merely initialize it properly.
   *
   * \param isolate The isolate that was allocated by `Isolate::Allocate()~.
   * \param params The parameters to initialize the Isolate for. Details:
   *               - `params.external_references` are expected to be a
   *                 null-terminated array of external references.
   *               - `params.existing_blob` is an optional snapshot blob from
   *                 which can be used to initialize the new blob.
   */
  SnapshotCreator(v8::Isolate* isolate,
                  const v8::Isolate::CreateParams& params);

  /**
   * Destroy the snapshot creator, and exit and dispose of the Isolate
   * associated with it.
   */
  ~SnapshotCreator();

  /**
   * \returns the isolate prepared by the snapshot creator.
   */
  Isolate* GetIsolate();

  /**
   * Set the default context to be included in the snapshot blob.
   * The snapshot will not contain the global proxy, and we expect one or a
   * global object template to create one, to be provided upon deserialization.
   *
   * \param internal_fields_serializer An optional callback used to serialize
   * internal pointer fields set by
   * v8::Object::SetAlignedPointerInInternalField().
   *
   * \param context_data_serializer An optional callback used to serialize
   * context embedder data set by
   * v8::Context::SetAlignedPointerInEmbedderData().
   *
   */
  void SetDefaultContext(
      Local<Context> context,
      SerializeInternalFieldsCallback internal_fields_serializer =
          SerializeInternalFieldsCallback(),
      SerializeContextDataCallback context_data_serializer =
          SerializeContextDataCallback());

  /**
   * Add additional context to be included in the snapshot blob.
   * The snapshot will include the global proxy.
   *
   * \param internal_fields_serializer Similar to internal_fields_serializer
   * in SetDefaultContext() but only applies to the context being added.
   *
   * \param context_data_serializer Similar to context_data_serializer
   * in SetDefaultContext() but only applies to the context being added.
   */
  size_t AddContext(Local<Context> context,
                    SerializeInternalFieldsCallback internal_fields_serializer =
                        SerializeInternalFieldsCallback(),
                    SerializeContextDataCallback context_data_serializer =
                        SerializeContextDataCallback());

  /**
   * Attach arbitrary V8::Data to the context snapshot, which can be retrieved
   * via Context::GetDataFromSnapshotOnce after deserialization. This data does
   * not survive when a new snapshot is created from an existing snapshot.
   * \returns the index for retrieval.
   */
  template <class T>
  V8_INLINE size_t AddData(Local<Context> context, Local<T> object);

  /**
   * Attach arbitrary V8::Data to the isolate snapshot, which can be retrieved
   * via Isolate::GetDataFromSnapshotOnce after deserialization. This data does
   * not survive when a new snapshot is created from an existing snapshot.
   * \returns the index for retrieval.
   */
  template <class T>
  V8_INLINE size_t AddData(Local<T> object);

  /**
   * Created a snapshot data blob.
   * This must not be called from within a handle scope.
   * \param function_code_handling whether to include compiled function code
   *        in the snapshot.
   * \returns { nullptr, 0 } on failure, and a startup snapshot on success. The
   *        caller acquires ownership of the data array in the return value.
   */
  StartupData CreateBlob(FunctionCodeHandling function_code_handling);

  // Disallow copying and assigning.
  SnapshotCreator(const SnapshotCreator&) = delete;
  void operator=(const SnapshotCreator&) = delete;

 private:
  size_t AddData(Local<Context> context, internal::Address object);
  size_t AddData(internal::Address object);

  internal::SnapshotCreatorImpl* impl_;
  friend class internal::SnapshotCreatorImpl;
};

template <class T>
size_t SnapshotCreator::AddData(Local<Context> context, Local<T> object) {
  return AddData(context, internal::ValueHelper::ValueAsAddress(*object));
}

template <class T>
size_t SnapshotCreator::AddData(Local<T> object) {
  return AddData(internal::ValueHelper::ValueAsAddress(*object));
}

}  // namespace v8

#endif  // INCLUDE_V8_SNAPSHOT_H_

Filemanager

Name Type Size Permission Actions
cppgc Folder 0755
libplatform Folder 0755
openssl Folder 0755
uv Folder 0755
common.gypi File 26.59 KB 0644
config.gypi File 32.08 KB 0644
js_native_api.h File 31.64 KB 0644
js_native_api_types.h File 6.87 KB 0644
node.h File 67.99 KB 0644
node_api.h File 10.34 KB 0644
node_api_types.h File 1.57 KB 0644
node_buffer.h File 3.6 KB 0644
node_object_wrap.h File 3.78 KB 0644
node_version.h File 4.14 KB 0644
uv.h File 71.1 KB 0644
v8-array-buffer.h File 17.89 KB 0644
v8-callbacks.h File 16.59 KB 0644
v8-container.h File 5.82 KB 0644
v8-context.h File 17.76 KB 0644
v8-cppgc.h File 7.46 KB 0644
v8-data.h File 1.58 KB 0644
v8-date.h File 1.19 KB 0644
v8-debug.h File 5.04 KB 0644
v8-embedder-heap.h File 2.71 KB 0644
v8-embedder-state-scope.h File 1.46 KB 0644
v8-exception.h File 7.41 KB 0644
v8-extension.h File 1.83 KB 0644
v8-external.h File 924 B 0644
v8-forward.h File 1.65 KB 0644
v8-function-callback.h File 19.19 KB 0644
v8-function.h File 4.42 KB 0644
v8-handle-base.h File 4.3 KB 0644
v8-initialization.h File 10.23 KB 0644
v8-internal.h File 57.22 KB 0644
v8-isolate.h File 63.38 KB 0644
v8-json.h File 1.32 KB 0644
v8-local-handle.h File 23.6 KB 0644
v8-locker.h File 3.86 KB 0644
v8-maybe.h File 4.47 KB 0644
v8-memory-span.h File 6.27 KB 0644
v8-message.h File 7.24 KB 0644
v8-microtask-queue.h File 4.95 KB 0644
v8-microtask.h File 861 B 0644
v8-object.h File 29.55 KB 0644
v8-persistent-handle.h File 17.81 KB 0644
v8-platform.h File 47.9 KB 0644
v8-primitive-object.h File 2.53 KB 0644
v8-primitive.h File 27.69 KB 0644
v8-profiler.h File 41.11 KB 0644
v8-promise.h File 5.17 KB 0644
v8-proxy.h File 1.23 KB 0644
v8-regexp.h File 3.1 KB 0644
v8-script.h File 30.59 KB 0644
v8-snapshot.h File 10.15 KB 0644
v8-source-location.h File 2.54 KB 0644
v8-statistics.h File 7.45 KB 0644
v8-template.h File 50.36 KB 0644
v8-traced-handle.h File 12.4 KB 0644
v8-typed-array.h File 11.3 KB 0644
v8-unwinder.h File 4.64 KB 0644
v8-value-serializer.h File 10.56 KB 0644
v8-value.h File 16.71 KB 0644
v8-version.h File 773 B 0644
v8-wasm.h File 6 KB 0644
v8-weak-callback-info.h File 2.41 KB 0644
v8.h File 3.69 KB 0644
v8config.h File 32.85 KB 0644
zconf.h File 16.6 KB 0644
zlib.h File 95.17 KB 0644