From 5fa001b12c495c7b8f25703c0da2a7348ffcf2a6 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sat, 4 Jan 2014 11:50:34 -0700 Subject: [PATCH 1/3] Normalize view and detail properties --- .../syntheticEvents/SyntheticUIEvent.js | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/browser/syntheticEvents/SyntheticUIEvent.js b/src/browser/syntheticEvents/SyntheticUIEvent.js index e5b3bc6b08..45d873ab53 100644 --- a/src/browser/syntheticEvents/SyntheticUIEvent.js +++ b/src/browser/syntheticEvents/SyntheticUIEvent.js @@ -21,13 +21,30 @@ var SyntheticEvent = require('SyntheticEvent'); +var getEventTarget = require('getEventTarget'); + /** * @interface UIEvent * @see http://www.w3.org/TR/DOM-Level-3-Events/ */ var UIEventInterface = { - view: null, - detail: null + view: function(event) { + if (event.view) { + return event.view; + } else { + var target = getEventTarget(event); + if (target != null && target.window === target) { + // target is a window object + return target; + } else { + var doc = target.ownerDocument; + return doc.defaultView || doc.parentWindow; + } + } + }, + detail: function(event) { + return event.detail || 0; + } }; /** From 4d62e1ef5967f4b42ba8eb6a3835cc77f30f10e4 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Mon, 10 Feb 2014 17:02:00 -0800 Subject: [PATCH 2/3] Don't fail if target.ownerDocument is null See f71dbab. --- src/browser/syntheticEvents/SyntheticUIEvent.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/browser/syntheticEvents/SyntheticUIEvent.js b/src/browser/syntheticEvents/SyntheticUIEvent.js index 45d873ab53..adbc84df28 100644 --- a/src/browser/syntheticEvents/SyntheticUIEvent.js +++ b/src/browser/syntheticEvents/SyntheticUIEvent.js @@ -38,7 +38,12 @@ var UIEventInterface = { return target; } else { var doc = target.ownerDocument; - return doc.defaultView || doc.parentWindow; + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + if (doc) { + return doc.defaultView || doc.parentWindow; + } else { + return window; + } } } }, From 348399a59447c5a6aa62e4216100e926429ea9ba Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Tue, 8 Apr 2014 14:07:53 -0700 Subject: [PATCH 3/3] Let early returns do their thing --- .../syntheticEvents/SyntheticUIEvent.js | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/browser/syntheticEvents/SyntheticUIEvent.js b/src/browser/syntheticEvents/SyntheticUIEvent.js index adbc84df28..02537f3af3 100644 --- a/src/browser/syntheticEvents/SyntheticUIEvent.js +++ b/src/browser/syntheticEvents/SyntheticUIEvent.js @@ -31,20 +31,20 @@ var UIEventInterface = { view: function(event) { if (event.view) { return event.view; + } + + var target = getEventTarget(event); + if (target != null && target.window === target) { + // target is a window object + return target; + } + + var doc = target.ownerDocument; + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + if (doc) { + return doc.defaultView || doc.parentWindow; } else { - var target = getEventTarget(event); - if (target != null && target.window === target) { - // target is a window object - return target; - } else { - var doc = target.ownerDocument; - // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. - if (doc) { - return doc.defaultView || doc.parentWindow; - } else { - return window; - } - } + return window; } }, detail: function(event) {