void JSFloat64Array::putByIndex(JSCell* cell, ExecState* exec, unsigned propertyName, JSValue value, bool) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); thisObject->indexSetter(exec, propertyName, value); return; }
void JSFloat64Array::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(object); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); for (unsigned i = 0; i < static_cast<Float64Array*>(thisObject->impl())->length(); ++i) propertyNames.add(Identifier::from(exec, i)); Base::getOwnPropertyNames(thisObject, exec, propertyNames, mode); }
EncodedJSValue JSC_HOST_CALL jsFloat64ArrayPrototypeFunctionSet(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); if (!thisValue.inherits(&JSFloat64Array::s_info)) return throwVMTypeError(exec); JSFloat64Array* castedThis = jsCast<JSFloat64Array*>(asObject(thisValue)); ASSERT_GC_OBJECT_INHERITS(castedThis, &JSFloat64Array::s_info); return JSValue::encode(setWebGLArrayHelper<Float64Array, double>(exec, castedThis->impl())); }
bool JSFloat64Array::getOwnPropertySlotByIndex(JSCell* cell, ExecState* exec, unsigned index, PropertySlot& slot) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); if (index < static_cast<Float64Array*>(thisObject->impl())->length()) { slot.setValue(thisObject->getByIndex(exec, index)); return true; } return Base::getOwnPropertySlotByIndex(thisObject, exec, index, slot); }
bool JSFloat64Array::getOwnPropertySlotByIndex(JSCell* cell, ExecState* exec, unsigned propertyName, PropertySlot& slot) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); if (propertyName < static_cast<Float64Array*>(thisObject->impl())->length()) { slot.setValue(thisObject->getByIndex(exec, propertyName)); return true; } return thisObject->methodTable()->getOwnPropertySlot(thisObject, exec, Identifier::from(exec, propertyName), slot); }
void JSFloat64Array::putByIndex(JSCell* cell, ExecState* exec, unsigned index, JSValue value, bool shouldThrow) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); if (index <= MAX_ARRAY_INDEX) { UNUSED_PARAM(shouldThrow); thisObject->indexSetter(exec, index, value); return; } Base::putByIndex(cell, exec, index, value, shouldThrow); }
void JSFloat64Array::put(JSCell* cell, ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot& slot) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); unsigned index = propertyName.asIndex(); if (index != PropertyName::NotAnIndex) { thisObject->indexSetter(exec, index, value); return; } Base::put(thisObject, exec, propertyName, value, slot); }
bool JSFloat64Array::getOwnPropertyDescriptor(JSObject* object, ExecState* exec, PropertyName propertyName, PropertyDescriptor& descriptor) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(object); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); unsigned index = propertyName.asIndex(); if (index != PropertyName::NotAnIndex && index < static_cast<Float64Array*>(thisObject->impl())->length()) { descriptor.setDescriptor(thisObject->getByIndex(exec, index), DontDelete); return true; } return getStaticValueDescriptor<JSFloat64Array, Base>(exec, getJSFloat64ArrayTable(exec), thisObject, propertyName, descriptor); }
bool JSFloat64Array::getOwnPropertySlot(JSCell* cell, ExecState* exec, PropertyName propertyName, PropertySlot& slot) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); unsigned index = propertyName.asIndex(); if (index != PropertyName::NotAnIndex && index < static_cast<Float64Array*>(thisObject->impl())->length()) { slot.setValue(thisObject->getByIndex(exec, index)); return true; } return getStaticValueSlot<JSFloat64Array, Base>(exec, getJSFloat64ArrayTable(exec), thisObject, propertyName, slot); }
void JSFloat64Array::put(JSCell* cell, ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot) { JSFloat64Array* thisObject = jsCast<JSFloat64Array*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); bool ok; unsigned index = propertyName.toUInt32(ok); if (ok) { thisObject->indexSetter(exec, index, value); return; } Base::put(thisObject, exec, propertyName, value, slot); }
EncodedJSValue JSC_HOST_CALL jsFloat64ArrayPrototypeFunctionFoo(ExecState* exec) { JSValue thisValue = exec->hostThisValue(); if (!thisValue.inherits(&JSFloat64Array::s_info)) return throwVMTypeError(exec); JSFloat64Array* castedThis = jsCast<JSFloat64Array*>(asObject(thisValue)); ASSERT_GC_OBJECT_INHERITS(castedThis, &JSFloat64Array::s_info); Float64Array* impl = static_cast<Float64Array*>(castedThis->impl()); if (exec->argumentCount() < 1) return throwVMError(exec, createNotEnoughArgumentsError(exec)); Float32Array* array(toFloat32Array(exec->argument(0))); if (exec->hadException()) return JSValue::encode(jsUndefined()); JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->foo(array))); return JSValue::encode(result); }
JSValue jsFloat64ArrayConstructor(ExecState* exec, JSValue slotBase, PropertyName) { JSFloat64Array* domObject = jsCast<JSFloat64Array*>(asObject(slotBase)); return JSFloat64Array::getConstructor(exec, domObject->globalObject()); }
JSValue jsFloat64ArrayConstructor(ExecState* exec, JSValue slotBase, const Identifier&) { JSFloat64Array* domObject = static_cast<JSFloat64Array*>(asObject(slotBase)); return JSFloat64Array::getConstructor(exec, domObject->globalObject()); }