1635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project/* 26c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen * Copyright (C) 2010 Google Inc. All rights reserved. 35f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * 4635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Redistribution and use in source and binary forms, with or without 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modification, are permitted provided that the following conditions are 6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * met: 75f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * 8635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions of source code must retain the above copyright 9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * notice, this list of conditions and the following disclaimer. 10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * * Redistributions in binary form must reproduce the above 11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * copyright notice, this list of conditions and the following disclaimer 12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * in the documentation and/or other materials provided with the 13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * distribution. 145f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * 15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */ 27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 285f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#include "config.h" 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 306c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#if ENABLE(INDEXED_DATABASE) 315f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 326c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "JSIDBAny.h" 335f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "IDBAny.h" 35dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "IDBCursor.h" 36dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "IDBDatabase.h" 37db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "IDBFactory.h" 38db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "IDBIndex.h" 39e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "IDBKey.h" 40dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "IDBObjectStore.h" 41dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "JSIDBCursor.h" 42dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "JSIDBDatabase.h" 43db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "JSIDBFactory.h" 44db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block#include "JSIDBIndex.h" 45e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include "JSIDBKey.h" 46dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include "JSIDBObjectStore.h" 47a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch#include "JSIDBTransaction.h" 486c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "SerializedScriptValue.h" 496c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen 506c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenusing namespace JSC; 515f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 525f1ab04193ad0130ca8204aadaceae083aca9881Feng Qiannamespace WebCore { 535f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 546c2af9490927c3c5959b5cb07461b646f8b32f6cKristian MonsenJSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, IDBAny* idbAny) 555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{ 566c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen if (!idbAny) 576c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return jsNull(); 58643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 596c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen switch (idbAny->type()) { 606c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen case IDBAny::UndefinedType: 616c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return jsUndefined(); 625af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke case IDBAny::NullType: 635af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke return jsNull(); 64dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case IDBAny::IDBCursorType: 65dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return toJS(exec, globalObject, idbAny->idbCursor()); 66dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case IDBAny::IDBDatabaseType: 67dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return toJS(exec, globalObject, idbAny->idbDatabase()); 68a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch case IDBAny::IDBFactoryType: 69a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return toJS(exec, globalObject, idbAny->idbFactory()); 70db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block case IDBAny::IDBIndexType: 71db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block return toJS(exec, globalObject, idbAny->idbIndex()); 72e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke case IDBAny::IDBKeyType: 73e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke return toJS(exec, globalObject, idbAny->idbKey()); 74dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch case IDBAny::IDBObjectStoreType: 75dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch return toJS(exec, globalObject, idbAny->idbObjectStore()); 76a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch case IDBAny::IDBTransactionType: 77a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return toJS(exec, globalObject, idbAny->idbTransaction()); 786c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen case IDBAny::SerializedScriptValueType: 796c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return idbAny->serializedScriptValue()->deserialize(exec, globalObject); 806c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen } 81643ca7872b450ea4efacab6188849e5aac2ba161Steve Block 826c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen ASSERT_NOT_REACHED(); 836c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen return jsUndefined(); 845e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block} 855e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block 865f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian} // namespace WebCore 875f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 886c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#endif // ENABLE(INDEXED_DATABASE) 89