File tree 4 files changed +55
-2
lines changed
4 files changed +55
-2
lines changed Original file line number Diff line number Diff line change 199
199
handleNative : function ( ev ) {
200
200
var handled ;
201
201
var type = ev . type ;
202
- var node = ev . currentTarget ;
202
+ var node = wrap ( ev . currentTarget ) ;
203
203
var gobj = node [ GESTURE_KEY ] ;
204
+ if ( ! gobj ) {
205
+ return ;
206
+ }
204
207
var gs = gobj [ type ] ;
205
208
if ( ! gs ) {
206
209
return ;
292
295
293
296
// automate the event listeners for the native events
294
297
add : function ( node , evType , handler ) {
298
+ // SD polyfill: handle case where `node` is unwrapped, like `document`
299
+ node = wrap ( node ) ;
295
300
var recognizer = this . gestures [ evType ] ;
296
301
var deps = recognizer . deps ;
297
302
var name = recognizer . name ;
323
328
324
329
// automate event listener removal for native events
325
330
remove : function ( node , evType , handler ) {
331
+ // SD polyfill: handle case where `node` is unwrapped, like `document`
332
+ node = wrap ( node ) ;
326
333
var recognizer = this . gestures [ evType ] ;
327
334
var deps = recognizer . deps ;
328
335
var name = recognizer . name ;
Original file line number Diff line number Diff line change 41
41
'unit/array-selector.html' ,
42
42
'unit/events.html' ,
43
43
'unit/gestures.html' ,
44
+ 'unit/gestures.html?dom=shadow' ,
44
45
'unit/utils.html' ,
45
46
'unit/utils-content.html' ,
46
47
'unit/utils.html?dom=shadow' ,
Original file line number Diff line number Diff line change 139
139
} ) ;
140
140
</ script >
141
141
</ dom-module >
142
+
143
+ < dom-module id ="x-document-listener ">
144
+ < script >
145
+ Polymer ( {
146
+ is : 'x-document-listener' ,
147
+ properties : {
148
+ stream : {
149
+ type : Array ,
150
+ value : function ( ) {
151
+ return [ ] ;
152
+ }
153
+ }
154
+ } ,
155
+ setup : function ( ) {
156
+ this . listen ( document , 'down' , 'handler' ) ;
157
+ } ,
158
+ teardown : function ( ) {
159
+ this . unlisten ( document , 'down' , 'handler' ) ;
160
+ } ,
161
+ handler : function ( e ) {
162
+ this . stream . push ( e ) ;
163
+ }
164
+ } ) ;
165
+ </ script >
166
+ </ dom-module >
Original file line number Diff line number Diff line change 12
12
< head >
13
13
< meta charset ="utf-8 ">
14
14
15
- < script src ="../../../webcomponentsjs/webcomponents-lite .js "> </ script >
15
+ < script src ="../../../webcomponentsjs/webcomponents.js "> </ script >
16
16
< script src ="../../../web-component-tester/browser.js "> </ script >
17
17
18
18
< link rel ="import " href ="../../polymer.html ">
386
386
} ) ;
387
387
} ) ;
388
388
} ) ;
389
+
390
+ suite ( 'SD Polyfill' , function ( ) {
391
+ var el ;
392
+ setup ( function ( ) {
393
+ el = document . createElement ( 'x-document-listener' ) ;
394
+ document . body . appendChild ( el ) ;
395
+ el . setup ( ) ;
396
+ } ) ;
397
+
398
+ teardown ( function ( ) {
399
+ el . teardown ( ) ;
400
+ document . body . removeChild ( el ) ;
401
+ } ) ;
402
+
403
+ test ( 'document listener works in SD polyfill' , function ( ) {
404
+ var ev = new CustomEvent ( 'mousedown' , { bubbles : true } ) ;
405
+ el . dispatchEvent ( ev ) ;
406
+ assert . equal ( el . stream . length , 1 ) ;
407
+ } ) ;
408
+ } ) ;
389
409
</ script >
390
410
391
411
</ body >
You can’t perform that action at this time.
0 commit comments