| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 819 CRASH(); | 819 CRASH(); |
| 820 } | 820 } |
| 821 } | 821 } |
| 822 | 822 |
| 823 v8::Handle<v8::Function> getBoundFunction(v8::Handle<v8::Function> function) | 823 v8::Handle<v8::Function> getBoundFunction(v8::Handle<v8::Function> function) |
| 824 { | 824 { |
| 825 v8::Handle<v8::Value> boundFunction = function->GetBoundFunction(); | 825 v8::Handle<v8::Value> boundFunction = function->GetBoundFunction(); |
| 826 return boundFunction->IsFunction() ? v8::Handle<v8::Function>::Cast(boundFun
ction) : function; | 826 return boundFunction->IsFunction() ? v8::Handle<v8::Function>::Cast(boundFun
ction) : function; |
| 827 } | 827 } |
| 828 | 828 |
| 829 void addHiddenValueToArray(v8::Handle<v8::Object> object, v8::Local<v8::Value> v
alue, int arrayIndex, v8::Isolate* isolate) | 829 void addHiddenValueToArray(v8::Isolate* isolate, v8::Handle<v8::Object> object,
v8::Local<v8::Value> value, int arrayIndex) |
| 830 { | 830 { |
| 831 v8::Local<v8::Value> arrayValue = object->GetInternalField(arrayIndex); | 831 v8::Local<v8::Value> arrayValue = object->GetInternalField(arrayIndex); |
| 832 if (arrayValue->IsNull() || arrayValue->IsUndefined()) { | 832 if (arrayValue->IsNull() || arrayValue->IsUndefined()) { |
| 833 arrayValue = v8::Array::New(isolate); | 833 arrayValue = v8::Array::New(isolate); |
| 834 object->SetInternalField(arrayIndex, arrayValue); | 834 object->SetInternalField(arrayIndex, arrayValue); |
| 835 } | 835 } |
| 836 | 836 |
| 837 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(arrayValue); | 837 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(arrayValue); |
| 838 array->Set(v8::Integer::New(isolate, array->Length()), value); | 838 array->Set(v8::Integer::New(isolate, array->Length()), value); |
| 839 } | 839 } |
| 840 | 840 |
| 841 void removeHiddenValueFromArray(v8::Handle<v8::Object> object, v8::Local<v8::Val
ue> value, int arrayIndex, v8::Isolate* isolate) | 841 void removeHiddenValueFromArray(v8::Isolate* isolate, v8::Handle<v8::Object> obj
ect, v8::Local<v8::Value> value, int arrayIndex) |
| 842 { | 842 { |
| 843 v8::Local<v8::Value> arrayValue = object->GetInternalField(arrayIndex); | 843 v8::Local<v8::Value> arrayValue = object->GetInternalField(arrayIndex); |
| 844 if (!arrayValue->IsArray()) | 844 if (!arrayValue->IsArray()) |
| 845 return; | 845 return; |
| 846 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(arrayValue); | 846 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(arrayValue); |
| 847 for (int i = array->Length() - 1; i >= 0; --i) { | 847 for (int i = array->Length() - 1; i >= 0; --i) { |
| 848 v8::Local<v8::Value> item = array->Get(v8::Integer::New(isolate, i)); | 848 v8::Local<v8::Value> item = array->Get(v8::Integer::New(isolate, i)); |
| 849 if (item->StrictEquals(value)) { | 849 if (item->StrictEquals(value)) { |
| 850 array->Delete(i); | 850 array->Delete(i); |
| 851 return; | 851 return; |
| 852 } | 852 } |
| 853 } | 853 } |
| 854 } | 854 } |
| 855 | 855 |
| 856 void moveEventListenerToNewWrapper(v8::Handle<v8::Object> object, EventListener*
oldValue, v8::Local<v8::Value> newValue, int arrayIndex, v8::Isolate* isolate) | 856 void moveEventListenerToNewWrapper(v8::Isolate* isolate, v8::Handle<v8::Object>
object, EventListener* oldValue, v8::Local<v8::Value> newValue, int arrayIndex) |
| 857 { | 857 { |
| 858 if (oldValue) { | 858 if (oldValue) { |
| 859 V8AbstractEventListener* oldListener = V8AbstractEventListener::cast(old
Value); | 859 V8AbstractEventListener* oldListener = V8AbstractEventListener::cast(old
Value); |
| 860 if (oldListener) { | 860 if (oldListener) { |
| 861 v8::Local<v8::Object> oldListenerObject = oldListener->getExistingLi
stenerObject(); | 861 v8::Local<v8::Object> oldListenerObject = oldListener->getExistingLi
stenerObject(); |
| 862 if (!oldListenerObject.IsEmpty()) | 862 if (!oldListenerObject.IsEmpty()) |
| 863 removeHiddenValueFromArray(object, oldListenerObject, arrayIndex
, isolate); | 863 removeHiddenValueFromArray(isolate, object, oldListenerObject, a
rrayIndex); |
| 864 } | 864 } |
| 865 } | 865 } |
| 866 // Non-callable input is treated as null and ignored | 866 // Non-callable input is treated as null and ignored |
| 867 if (newValue->IsFunction()) | 867 if (newValue->IsFunction()) |
| 868 addHiddenValueToArray(object, newValue, arrayIndex, isolate); | 868 addHiddenValueToArray(isolate, object, newValue, arrayIndex); |
| 869 } | 869 } |
| 870 | 870 |
| 871 v8::Isolate* toIsolate(ExecutionContext* context) | 871 v8::Isolate* toIsolate(ExecutionContext* context) |
| 872 { | 872 { |
| 873 if (context && context->isDocument()) | 873 if (context && context->isDocument()) |
| 874 return V8PerIsolateData::mainThreadIsolate(); | 874 return V8PerIsolateData::mainThreadIsolate(); |
| 875 return v8::Isolate::GetCurrent(); | 875 return v8::Isolate::GetCurrent(); |
| 876 } | 876 } |
| 877 | 877 |
| 878 v8::Isolate* toIsolate(LocalFrame* frame) | 878 v8::Isolate* toIsolate(LocalFrame* frame) |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 968 stringResource.prepare(); | 968 stringResource.prepare(); |
| 969 resourceName = stringResource; | 969 resourceName = stringResource; |
| 970 lineNumber = originalFunction->GetScriptLineNumber() + 1; | 970 lineNumber = originalFunction->GetScriptLineNumber() + 1; |
| 971 } | 971 } |
| 972 if (resourceName.isEmpty()) { | 972 if (resourceName.isEmpty()) { |
| 973 resourceName = "undefined"; | 973 resourceName = "undefined"; |
| 974 lineNumber = 1; | 974 lineNumber = 1; |
| 975 } | 975 } |
| 976 } | 976 } |
| 977 | 977 |
| 978 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(Executio
nContext* context, v8::Handle<v8::Function> function, v8::Isolate* isolate) | 978 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(v8::Isol
ate* isolate, ExecutionContext* context, v8::Handle<v8::Function> function) |
| 979 { | 979 { |
| 980 int scriptId = 0; | 980 int scriptId = 0; |
| 981 String resourceName; | 981 String resourceName; |
| 982 int lineNumber = 1; | 982 int lineNumber = 1; |
| 983 GetDevToolsFunctionInfo(function, isolate, scriptId, resourceName, lineNumbe
r); | 983 GetDevToolsFunctionInfo(function, isolate, scriptId, resourceName, lineNumbe
r); |
| 984 return InspectorFunctionCallEvent::data(context, scriptId, resourceName, lin
eNumber); | 984 return InspectorFunctionCallEvent::data(context, scriptId, resourceName, lin
eNumber); |
| 985 } | 985 } |
| 986 | 986 |
| 987 v8::Local<v8::Value> v8DoneIteratorResult(v8::Isolate* isolate) | 987 v8::Local<v8::Value> v8DoneIteratorResult(v8::Isolate* isolate) |
| 988 { | 988 { |
| 989 v8::Local<v8::Object> result = v8::Object::New(isolate); | 989 v8::Local<v8::Object> result = v8::Object::New(isolate); |
| 990 result->Set(v8String(isolate, "value"), v8::Undefined(isolate)); | 990 result->Set(v8String(isolate, "value"), v8::Undefined(isolate)); |
| 991 result->Set(v8String(isolate, "done"), v8Boolean(true, isolate)); | 991 result->Set(v8String(isolate, "done"), v8Boolean(true, isolate)); |
| 992 return result; | 992 return result; |
| 993 } | 993 } |
| 994 | 994 |
| 995 v8::Local<v8::Value> v8IteratorResult(v8::Isolate* isolate, v8::Handle<v8::Value
> value) | 995 v8::Local<v8::Value> v8IteratorResult(v8::Isolate* isolate, v8::Handle<v8::Value
> value) |
| 996 { | 996 { |
| 997 v8::Local<v8::Object> result = v8::Object::New(isolate); | 997 v8::Local<v8::Object> result = v8::Object::New(isolate); |
| 998 result->Set(v8String(isolate, "value"), value); | 998 result->Set(v8String(isolate, "value"), value); |
| 999 result->Set(v8String(isolate, "done"), v8Boolean(false, isolate)); | 999 result->Set(v8String(isolate, "done"), v8Boolean(false, isolate)); |
| 1000 return result; | 1000 return result; |
| 1001 } | 1001 } |
| 1002 | 1002 |
| 1003 } // namespace blink | 1003 } // namespace blink |
| OLD | NEW |