1/* 2 This file is part of the WebKit open source project. 3 This file has been generated by generate-bindings.pl. DO NOT MODIFY! 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Library General Public 7 License as published by the Free Software Foundation; either 8 version 2 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public License 16 along with this library; see the file COPYING.LIB. If not, write to 17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. 19*/ 20 21#ifndef JSFloat64Array_h 22#define JSFloat64Array_h 23 24#include "JSArrayBufferView.h" 25#include "JSDOMBinding.h" 26#include <runtime/Float64Array.h> 27#include <runtime/JSObject.h> 28 29namespace WebCore { 30 31class JSFloat64Array : public JSArrayBufferView { 32public: 33 typedef JSArrayBufferView Base; 34 static JSFloat64Array* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<Float64Array> impl) 35 { 36 JSFloat64Array* ptr = new (NotNull, JSC::allocateCell<JSFloat64Array>(globalObject->vm().heap)) JSFloat64Array(structure, globalObject, impl); 37 ptr->finishCreation(globalObject->vm()); 38 return ptr; 39 } 40 41 static JSC::JSObject* createPrototype(JSC::ExecState*, JSC::JSGlobalObject*); 42 static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&); 43 static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&); 44 static bool getOwnPropertySlotByIndex(JSC::JSObject*, JSC::ExecState*, unsigned propertyName, JSC::PropertySlot&); 45 static void put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&); 46 static void putByIndex(JSC::JSCell*, JSC::ExecState*, unsigned propertyName, JSC::JSValue, bool shouldThrow); 47 DECLARE_INFO; 48 49 static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) 50 { 51 return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); 52 } 53 54 static void getOwnPropertyNames(JSC::JSObject*, JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties); 55 static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*); 56 Float64Array* impl() const 57 { 58 return static_cast<Float64Array*>(Base::impl()); 59 } 60 static const JSC::TypedArrayType TypedArrayStorageType = JSC::TypedArrayFloat64; 61 intptr_t m_storageLength; 62 void* m_storage; 63protected: 64 JSFloat64Array(JSC::Structure*, JSDOMGlobalObject*, PassRefPtr<Float64Array>); 65 void finishCreation(JSC::VM&); 66 static const unsigned StructureFlags = JSC::OverridesGetPropertyNames | JSC::OverridesGetOwnPropertySlot | JSC::InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | Base::StructureFlags; 67 JSC::JSValue getByIndex(JSC::ExecState*, unsigned index); 68 void indexSetter(JSC::ExecState*, unsigned index, JSC::JSValue); 69}; 70 71JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, Float64Array*); 72Float64Array* toFloat64Array(JSC::JSValue); 73 74class JSFloat64ArrayPrototype : public JSC::JSNonFinalObject { 75public: 76 typedef JSC::JSNonFinalObject Base; 77 static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*); 78 static JSFloat64ArrayPrototype* create(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::Structure* structure) 79 { 80 JSFloat64ArrayPrototype* ptr = new (NotNull, JSC::allocateCell<JSFloat64ArrayPrototype>(vm.heap)) JSFloat64ArrayPrototype(vm, globalObject, structure); 81 ptr->finishCreation(vm); 82 return ptr; 83 } 84 85 DECLARE_INFO; 86 static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&); 87 static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&); 88 static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) 89 { 90 return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); 91 } 92 93private: 94 JSFloat64ArrayPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) : JSC::JSNonFinalObject(vm, structure) { } 95protected: 96 static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | Base::StructureFlags; 97}; 98 99class JSFloat64ArrayConstructor : public DOMConstructorObject { 100private: 101 JSFloat64ArrayConstructor(JSC::Structure*, JSDOMGlobalObject*); 102 void finishCreation(JSC::ExecState*, JSDOMGlobalObject*); 103 104public: 105 typedef DOMConstructorObject Base; 106 static JSFloat64ArrayConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject) 107 { 108 JSFloat64ArrayConstructor* ptr = new (NotNull, JSC::allocateCell<JSFloat64ArrayConstructor>(*exec->heap())) JSFloat64ArrayConstructor(structure, globalObject); 109 ptr->finishCreation(exec, globalObject); 110 return ptr; 111 } 112 113 static bool getOwnPropertySlot(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&); 114 static bool getOwnPropertyDescriptor(JSC::JSObject*, JSC::ExecState*, JSC::PropertyName, JSC::PropertyDescriptor&); 115 DECLARE_INFO; 116 static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) 117 { 118 return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); 119 } 120protected: 121 static const unsigned StructureFlags = JSC::OverridesGetOwnPropertySlot | JSC::ImplementsHasInstance | DOMConstructorObject::StructureFlags; 122 static JSC::EncodedJSValue JSC_HOST_CALL constructJSFloat64Array(JSC::ExecState*); 123 static JSC::ConstructType getConstructData(JSC::JSCell*, JSC::ConstructData&); 124}; 125 126// Functions 127 128JSC::EncodedJSValue JSC_HOST_CALL jsFloat64ArrayPrototypeFunctionFoo(JSC::ExecState*); 129JSC::EncodedJSValue JSC_HOST_CALL jsFloat64ArrayPrototypeFunctionSet(JSC::ExecState*); 130// Attributes 131 132JSC::JSValue jsFloat64ArrayConstructor(JSC::ExecState*, JSC::JSValue, JSC::PropertyName); 133 134} // namespace WebCore 135 136#endif 137