aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/DOMJSClass.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/bindings/codegen/DOMJSClass.h')
-rw-r--r--src/components/script/dom/bindings/codegen/DOMJSClass.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/src/components/script/dom/bindings/codegen/DOMJSClass.h b/src/components/script/dom/bindings/codegen/DOMJSClass.h
deleted file mode 100644
index 151960b5901..00000000000
--- a/src/components/script/dom/bindings/codegen/DOMJSClass.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-*/
-/* 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 mozilla_dom_DOMJSClass_h
-#define mozilla_dom_DOMJSClass_h
-
-#include "jsapi.h"
-#include "jsfriendapi.h"
-
-#include "mozilla/dom/PrototypeList.h" // auto-generated
-
-// We use slot 0 for holding the raw object. This is safe for both
-// globals and non-globals.
-#define DOM_OBJECT_SLOT 0
-
-// All DOM globals must have a slot at DOM_PROTOTYPE_SLOT. We have to
-// start at 1 past JSCLASS_GLOBAL_SLOT_COUNT because XPConnect uses
-// that one.
-#define DOM_PROTOTYPE_SLOT (JSCLASS_GLOBAL_SLOT_COUNT + 1)
-
-// We use these flag bits for the new bindings.
-#define JSCLASS_DOM_GLOBAL JSCLASS_USERBIT1
-
-// NOTE: This is baked into the Ion JIT as 0 in codegen for LGetDOMProperty and
-// LSetDOMProperty. Those constants need to be changed accordingly if this value
-// changes.
-#define DOM_PROTO_INSTANCE_CLASS_SLOT 0
-
-namespace mozilla {
-namespace dom {
-
-typedef bool
-(* ResolveProperty)(JSContext* cx, JSObject* wrapper, jsid id, bool set,
- JSPropertyDescriptor* desc);
-typedef bool
-(* EnumerateProperties)(JSContext* cx, JSObject* wrapper,
- JS::AutoIdVector& props);
-
-struct NativePropertyHooks
-{
- ResolveProperty mResolveOwnProperty;
- ResolveProperty mResolveProperty;
- EnumerateProperties mEnumerateOwnProperties;
- EnumerateProperties mEnumerateProperties;
-
- const NativePropertyHooks *mProtoHooks;
-};
-
-struct DOMClass
-{
- // A list of interfaces that this object implements, in order of decreasing
- // derivedness.
- const prototypes::ID mInterfaceChain[prototypes::id::_ID_Count];
-
- // We store the DOM object in reserved slot with index DOM_OBJECT_SLOT or in
- // the proxy private if we use a proxy object.
- // Sometimes it's an nsISupports and sometimes it's not; this class tells
- // us which it is.
- const bool mDOMObjectIsISupports;
-
- const NativePropertyHooks* mNativeHooks;
-};
-
-// Special JSClass for reflected DOM objects.
-struct DOMJSClass
-{
- // It would be nice to just inherit from JSClass, but that precludes pure
- // compile-time initialization of the form |DOMJSClass = {...};|, since C++
- // only allows brace initialization for aggregate/POD types.
- JSClass mBase;
-
- DOMClass mClass;
-
- static DOMJSClass* FromJSClass(JSClass* base) {
- MOZ_ASSERT(base->flags & JSCLASS_IS_DOMJSCLASS);
- return reinterpret_cast<DOMJSClass*>(base);
- }
- static const DOMJSClass* FromJSClass(const JSClass* base) {
- MOZ_ASSERT(base->flags & JSCLASS_IS_DOMJSCLASS);
- return reinterpret_cast<const DOMJSClass*>(base);
- }
-
- static DOMJSClass* FromJSClass(js::Class* base) {
- return FromJSClass(Jsvalify(base));
- }
- static const DOMJSClass* FromJSClass(const js::Class* base) {
- return FromJSClass(Jsvalify(base));
- }
-
- JSClass* ToJSClass() { return &mBase; }
-};
-
-inline bool
-HasProtoOrIfaceArray(JSObject* global)
-{
- MOZ_ASSERT(js::GetObjectClass(global)->flags & JSCLASS_DOM_GLOBAL);
- // This can be undefined if we GC while creating the global
- return !js::GetReservedSlot(global, DOM_PROTOTYPE_SLOT).isUndefined();
-}
-
-inline JSObject**
-GetProtoOrIfaceArray(JSObject* global)
-{
- MOZ_ASSERT(js::GetObjectClass(global)->flags & JSCLASS_DOM_GLOBAL);
- return static_cast<JSObject**>(
- js::GetReservedSlot(global, DOM_PROTOTYPE_SLOT).toPrivate());
-}
-
-} // namespace dom
-} // namespace mozilla
-
-#endif /* mozilla_dom_DOMJSClass_h */