void IDBCursor::setGetResult(IDBRequest& request, const IDBGetResult& getResult) { LOG(IndexedDB, "IDBCursor::setGetResult - current key %s", getResult.keyData().loggingString().utf8().data()); auto* context = request.scriptExecutionContext(); if (!context) return; if (!getResult.isDefined()) { m_deprecatedCurrentKey = { }; m_deprecatedCurrentPrimaryKey = { }; m_currentPrimaryKeyData = { }; m_deprecatedCurrentValue = { }; m_gotValue = false; return; } m_deprecatedCurrentKey = idbKeyDataToScriptValue(context, getResult.keyData()); m_deprecatedCurrentPrimaryKey = idbKeyDataToScriptValue(context, getResult.primaryKeyData()); m_currentPrimaryKeyData = getResult.primaryKeyData(); if (isKeyCursor()) m_deprecatedCurrentValue = { }; else m_deprecatedCurrentValue = deserializeIDBValueData(*context, getResult.valueBuffer()); m_gotValue = true; }
JSValue jsIDBRequestOnerror(ExecState* exec, JSValue slotBase, const Identifier&) { JSIDBRequest* castedThis = static_cast<JSIDBRequest*>(asObject(slotBase)); UNUSED_PARAM(exec); IDBRequest* imp = static_cast<IDBRequest*>(castedThis->impl()); if (EventListener* listener = imp->onerror()) { if (const JSEventListener* jsListener = JSEventListener::cast(listener)) { if (JSObject* jsFunction = jsListener->jsFunction(imp->scriptExecutionContext())) return jsFunction; } } return jsNull(); }