/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: set ts=8 sts=4 et sw=4 tw=99: * 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/. */ // This file contains public type declarations that are used *frequently*. If // it doesn't occur at least 10 times in Gecko, it probably shouldn't be in // here. // // It includes only: // - forward declarations of structs and classes; // - typedefs; // - enums (maybe). // It does *not* contain any struct or class definitions. #ifndef js_TypeDecls_h #define js_TypeDecls_h #include #include #include "js-config.h" struct JSContext; class JSFunction; class JSObject; class JSScript; class JSString; struct jsid; typedef char16_t jschar; namespace JS { class Value; template class Handle; template class MutableHandle; template class Rooted; template class PersistentRooted; typedef Handle HandleFunction; typedef Handle HandleId; typedef Handle HandleObject; typedef Handle HandleScript; typedef Handle HandleString; typedef Handle HandleValue; typedef MutableHandle MutableHandleFunction; typedef MutableHandle MutableHandleId; typedef MutableHandle MutableHandleObject; typedef MutableHandle MutableHandleScript; typedef MutableHandle MutableHandleString; typedef MutableHandle MutableHandleValue; typedef Rooted RootedObject; typedef Rooted RootedFunction; typedef Rooted RootedScript; typedef Rooted RootedString; typedef Rooted RootedId; typedef Rooted RootedValue; typedef PersistentRooted PersistentRootedFunction; typedef PersistentRooted PersistentRootedId; typedef PersistentRooted PersistentRootedObject; typedef PersistentRooted PersistentRootedScript; typedef PersistentRooted PersistentRootedString; typedef PersistentRooted PersistentRootedValue; } // namespace JS #endif /* js_TypeDecls_h */