Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(335)

Unified Diff: Source/bindings/v8/V8EventListenerList.h

Issue 34393005: IDL compiler: merge and simplify EventHandler non-callable value check (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Formatting Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/bindings/v8/V8Utilities.cpp » ('j') | Source/bindings/v8/V8Utilities.cpp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/v8/V8EventListenerList.h
diff --git a/Source/bindings/v8/V8EventListenerList.h b/Source/bindings/v8/V8EventListenerList.h
index 1074983653612b23e81bb4534261ead90aa21e3e..9adddbbb7adbbb8df6d8fc0b2fb9e8043ce49e6f 100644
--- a/Source/bindings/v8/V8EventListenerList.h
+++ b/Source/bindings/v8/V8EventListenerList.h
@@ -52,10 +52,9 @@ public:
static PassRefPtr<V8EventListener> findWrapper(v8::Local<v8::Value> value, bool isAttribute, v8::Isolate* isolate)
{
ASSERT(v8::Context::InContext());
- // Non-callable input should be treated as null
- if (!value->IsNull() && !value->IsFunction())
- value = v8::Null(isolate);
- if (!value->IsObject())
+ if (!value->IsObject()
+ // Non-callable attribute setter input is treated as null (no wrapper)
+ || (isAttribute && !value->IsFunction()))
haraken 2013/10/22 12:05:30 Looks like you newly added the isAttribute check.
Nils Barth (inactive) 2013/10/22 12:16:51 We only want to check if it's a function on attrib
haraken 2013/10/22 12:24:23 Makes sense. However, this changes web-exposed beh
Nils Barth (inactive) 2013/10/23 01:43:51 I looked into this, and found out this is always c
return 0;
v8::Handle<v8::String> wrapperProperty = getHiddenProperty(isAttribute, isolate);
@@ -94,10 +93,9 @@ template<typename WrapperType>
PassRefPtr<V8EventListener> V8EventListenerList::findOrCreateWrapper(v8::Local<v8::Value> value, bool isAttribute, v8::Isolate* isolate)
{
ASSERT(v8::Context::InContext());
- // Non-callable attribute setter input should be treated as null
- if (isAttribute && !value->IsNull() && !value->IsFunction())
- value = v8::Null(isolate);
- if (!value->IsObject())
+ if (!value->IsObject()
+ // Non-callable attribute setter input is treated as null (no wrapper)
+ || (isAttribute && !value->IsFunction()))
return 0;
v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast(value);
« no previous file with comments | « no previous file | Source/bindings/v8/V8Utilities.cpp » ('j') | Source/bindings/v8/V8Utilities.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698