| Index: Source/bindings/v8/IDBBindingUtilities.cpp
|
| diff --git a/Source/bindings/v8/IDBBindingUtilities.cpp b/Source/bindings/v8/IDBBindingUtilities.cpp
|
| index a727a96cf6d07254420cd227d5835ade4d33d0b6..d2436e4b5ff54c54f93c8d36c531cd9d5f337823 100644
|
| --- a/Source/bindings/v8/IDBBindingUtilities.cpp
|
| +++ b/Source/bindings/v8/IDBBindingUtilities.cpp
|
| @@ -74,7 +74,7 @@ static v8::Handle<v8::Value> idbKeyToV8Value(IDBKey* key, v8::Isolate* isolate)
|
|
|
| static const size_t maximumDepth = 2000;
|
|
|
| -static PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value, Vector<v8::Handle<v8::Array> >& stack)
|
| +static PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value, Vector<v8::Handle<v8::Array> >& stack, v8::Isolate* isolate)
|
| {
|
| if (value->IsNumber() && !std::isnan(value->NumberValue()))
|
| return IDBKey::createNumber(value->NumberValue());
|
| @@ -94,8 +94,8 @@ static PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value, Vec
|
| IDBKey::KeyArray subkeys;
|
| uint32_t length = array->Length();
|
| for (uint32_t i = 0; i < length; ++i) {
|
| - v8::Local<v8::Value> item = array->Get(v8::Int32::New(i));
|
| - RefPtr<IDBKey> subkey = createIDBKeyFromValue(item, stack);
|
| + v8::Local<v8::Value> item = array->Get(v8::Int32::New(i, isolate));
|
| + RefPtr<IDBKey> subkey = createIDBKeyFromValue(item, stack, isolate);
|
| if (!subkey)
|
| subkeys.append(IDBKey::createInvalid());
|
| else
|
| @@ -108,10 +108,10 @@ static PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value, Vec
|
| return 0;
|
| }
|
|
|
| -PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value)
|
| +static PassRefPtr<IDBKey> createIDBKeyFromValue(v8::Handle<v8::Value> value, v8::Isolate* isolate)
|
| {
|
| Vector<v8::Handle<v8::Array> > stack;
|
| - RefPtr<IDBKey> key = createIDBKeyFromValue(value, stack);
|
| + RefPtr<IDBKey> key = createIDBKeyFromValue(value, stack, isolate);
|
| if (key)
|
| return key;
|
| return IDBKey::createInvalid();
|
| @@ -217,7 +217,7 @@ static PassRefPtr<IDBKey> createIDBKeyFromScriptValueAndKeyPath(const ScriptValu
|
| v8::Handle<v8::Value> v8Key(getNthValueOnKeyPath(v8Value, keyPathElements, keyPathElements.size(), isolate));
|
| if (v8Key.IsEmpty())
|
| return 0;
|
| - return createIDBKeyFromValue(v8Key);
|
| + return createIDBKeyFromValue(v8Key, isolate);
|
| }
|
|
|
| PassRefPtr<IDBKey> createIDBKeyFromScriptValueAndKeyPath(DOMRequestState* state, const ScriptValue& value, const IDBKeyPath& keyPath)
|
| @@ -330,7 +330,7 @@ PassRefPtr<IDBKey> scriptValueToIDBKey(DOMRequestState* state, const ScriptValue
|
| v8::Isolate* isolate = state ? state->context()->GetIsolate() : v8::Isolate::GetCurrent();
|
| v8::HandleScope handleScope(isolate);
|
| v8::Handle<v8::Value> v8Value(scriptValue.v8Value());
|
| - return createIDBKeyFromValue(v8Value);
|
| + return createIDBKeyFromValue(v8Value, isolate);
|
| }
|
|
|
| PassRefPtr<IDBKeyRange> scriptValueToIDBKeyRange(DOMRequestState* state, const ScriptValue& scriptValue)
|
|
|