static void generateIndexKeysForValue(v8::Isolate* isolate, const IDBIndexMetadata& indexMetadata, const ScriptValue& objectValue, IDBObjectStore::IndexKeys* indexKeys) { ASSERT(indexKeys); RefPtrWillBeRawPtr<IDBKey> indexKey = createIDBKeyFromScriptValueAndKeyPath(isolate, objectValue, indexMetadata.keyPath); if (!indexKey) return; if (!indexMetadata.multiEntry || indexKey->type() != IDBKey::ArrayType) { if (!indexKey->isValid()) return; indexKeys->append(indexKey); } else { ASSERT(indexMetadata.multiEntry); ASSERT(indexKey->type() == IDBKey::ArrayType); indexKey = IDBKey::createMultiEntryArray(indexKey->array()); for (size_t i = 0; i < indexKey->array().size(); ++i) indexKeys->append(indexKey->array()[i]); } }