Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/js/src/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  jspubtd.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * vim: set ts=8 sts=2 et sw=2 tw=80:
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef jspubtd_h
#define jspubtd_h

/*
 * JS public API typedefs.
 */


#include "mozilla/Assertions.h"  // MOZ_ASSERT_UNREACHABLE

#include "jstypes.h"

#include "js/ProtoKey.h"
#include "js/Result.h"
#include "js/TraceKind.h"
#include "js/TypeDecls.h"

#if defined(JS_GC_ZEAL) || defined(DEBUG)
#  define JSGC_HASH_TABLE_CHECKS
#  define JS_CHECK_UNSAFE_CALL_WITH_ABI
#endif

namespace JS {

class CallArgs;

class JS_PUBLIC_API RealmOptions;

}  // namespace JS

/* Result of typeof operator enumeration. */
enum JSType {
  JSTYPE_UNDEFINED, /* undefined */
  JSTYPE_OBJECT,    /* object */
  JSTYPE_FUNCTION,  /* function */
  JSTYPE_STRING,    /* string */
  JSTYPE_NUMBER,    /* number */
  JSTYPE_BOOLEAN,   /* boolean */
  JSTYPE_SYMBOL,    /* symbol */
  JSTYPE_BIGINT,    /* bigint */
#ifdef ENABLE_RECORD_TUPLE
  JSTYPE_RECORD, /* record */
  JSTYPE_TUPLE,  /* tuple */
#endif
  JSTYPE_LIMIT
};

inline const char* JSTypeToString(JSType type) {
  switch (type) {
    case JSTYPE_UNDEFINED:
      return "undefined";
    case JSTYPE_OBJECT:
      return "object";
    case JSTYPE_FUNCTION:
      return "function";
    case JSTYPE_STRING:
      return "string";
    case JSTYPE_NUMBER:
      return "number";
    case JSTYPE_BOOLEAN:
      return "boolean";
    case JSTYPE_SYMBOL:
      return "symbol";
    case JSTYPE_BIGINT:
      return "bigint";
#ifdef ENABLE_RECORD_TUPLE
    case JSTYPE_RECORD:
      return "record";
    case JSTYPE_TUPLE:
      return "tuple";
#endif
    default:
      MOZ_ASSERT_UNREACHABLE("Unknown JSType");
  }
  return "";
}

/* Dense index into cached prototypes and class atoms for standard objects. */
enum JSProtoKey {
#define PROTOKEY_AND_INITIALIZER(name, clasp) JSProto_##name,
  JS_FOR_EACH_PROTOTYPE(PROTOKEY_AND_INITIALIZER)
#undef PROTOKEY_AND_INITIALIZER
      JSProto_LIMIT
};

/* Struct forward declarations. */
struct JSClass;
class JSErrorReport;
struct JSFunctionSpec;
struct JSPrincipals;
struct JSPropertySpec;
struct JSSecurityCallbacks;
struct JSStructuredCloneCallbacks;
struct JSStructuredCloneReader;
struct JSStructuredCloneWriter;
class JS_PUBLIC_API JSTracer;

class JSLinearString;

template <typename T>
struct JSConstScalarSpec;
using JSConstDoubleSpec = JSConstScalarSpec<double>;
using JSConstIntegerSpec = JSConstScalarSpec<int32_t>;

namespace js {

inline JS::Realm* GetContextRealm(const JSContext* cx);
inline JS::Compartment* GetContextCompartment(const JSContext* cx);
inline JS::Zone* GetContextZone(const JSContext* cx);

// Whether the current thread is permitted access to any part of the specified
// runtime or zone.
JS_PUBLIC_API bool CurrentThreadCanAccessRuntime(const JSRuntime* rt);

#ifdef DEBUG
JS_PUBLIC_API bool CurrentThreadIsMainThread();
JS_PUBLIC_API bool CurrentThreadIsPerformingGC();
#endif

}  // namespace js

namespace JS {

class JS_PUBLIC_API PropertyDescriptor;

// Decorates the Unlinking phase of CycleCollection so that accidental use
// of barriered accessors results in assertions instead of leaks.
class MOZ_STACK_CLASS JS_PUBLIC_API AutoEnterCycleCollection {
#ifdef DEBUG
  JSRuntime* runtime_;

 public:
  explicit AutoEnterCycleCollection(JSRuntime* rt);
  ~AutoEnterCycleCollection();
#else
 public:
  explicit AutoEnterCycleCollection(JSRuntime* rt) {}
  ~AutoEnterCycleCollection() {}
#endif
};

/* namespace JS */

extern "C" {

// Defined in NSPR prio.h.
using PRFileDesc = struct PRFileDesc;
}

#endif /* jspubtd_h */

Messung V0.5
C=94 H=92 G=92

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.