Sha256: ad2783655342544e49ad5323e04aefd112facbf5f6630d2f3050fbee1da4bcd0

Contents?: true

Size: 1.83 KB

Versions: 95

Compression:

Stored size: 1.83 KB

Contents

// 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_EXTENSION_H_
#define INCLUDE_V8_EXTENSION_H_

#include <memory>

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

namespace v8 {

class FunctionTemplate;

// --- Extensions ---

/**
 * Ignore
 */
class V8_EXPORT Extension {
 public:
  // Note that the strings passed into this constructor must live as long
  // as the Extension itself.
  Extension(const char* name, const char* source = nullptr, int dep_count = 0,
            const char** deps = nullptr, int source_length = -1);
  virtual ~Extension() { delete source_; }
  virtual Local<FunctionTemplate> GetNativeFunctionTemplate(
      Isolate* isolate, Local<String> name) {
    return Local<FunctionTemplate>();
  }

  const char* name() const { return name_; }
  size_t source_length() const { return source_length_; }
  const String::ExternalOneByteStringResource* source() const {
    return source_;
  }
  int dependency_count() const { return dep_count_; }
  const char** dependencies() const { return deps_; }
  void set_auto_enable(bool value) { auto_enable_ = value; }
  bool auto_enable() { return auto_enable_; }

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

 private:
  const char* name_;
  size_t source_length_;  // expected to initialize before source_
  String::ExternalOneByteStringResource* source_;
  int dep_count_;
  const char** deps_;
  bool auto_enable_;
};

void V8_EXPORT RegisterExtension(std::unique_ptr<Extension>);

}  // namespace v8

#endif  // INCLUDE_V8_EXTENSION_H_

Version data entries

95 entries across 94 versions & 2 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/libv8-node-18.19.0.0-x86_64-darwin/vendor/v8/include/v8-extension.h
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/libv8-node-18.19.0.0-x86_64-darwin/vendor/v8/include/v8-extension.h
libv8-node-22.7.0.4-arm64-darwin vendor/v8/include/v8-extension.h
libv8-node-22.7.0.4-x86_64-linux-musl vendor/v8/include/v8-extension.h
libv8-node-22.7.0.4-x86_64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.4-x86_64-darwin vendor/v8/include/v8-extension.h
libv8-node-22.7.0.4-aarch64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.3-x86_64-linux-musl vendor/v8/include/v8-extension.h
libv8-node-22.7.0.3-x86_64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.3-arm64-darwin vendor/v8/include/v8-extension.h
libv8-node-22.7.0.3-aarch64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.2-x86_64-linux-musl vendor/v8/include/v8-extension.h
libv8-node-22.7.0.2-x86_64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.2-x86_64-darwin vendor/v8/include/v8-extension.h
libv8-node-22.7.0.2-arm64-darwin vendor/v8/include/v8-extension.h
libv8-node-22.7.0.2-aarch64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.1-x86_64-linux-musl vendor/v8/include/v8-extension.h
libv8-node-22.7.0.1-x86_64-linux vendor/v8/include/v8-extension.h
libv8-node-22.7.0.1-x86_64-darwin vendor/v8/include/v8-extension.h
libv8-node-22.7.0.1-arm64-darwin vendor/v8/include/v8-extension.h