Remove IE8 event.target polyfill via srcElement (#11515)
Dan Abramov committed
Jan 5, 2018 at 17:21 UTC
fe10b8d0cd43e4bad998884c9ca61022091f7633
5 files changed
+1
-187
packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js
-62
@@ -79,68 +79,6 @@ describe('SyntheticClipboardEvent', () => {
79
});
80
81
describe('EventInterface', () => {
82
- it('normalizes properties from the Event interface', () => {
83
- let expectedCount = 0;
84
- let div;
85
-
86
- const eventHandler = type => event => {
87
- expect(event.target).toBe(div);
88
- expect(event.type).toBe(type);
89
- expectedCount++;
90
- };
91
-
92
- div = ReactDOM.render(
93
- <div
94
- onCopy={eventHandler('copy')}
95
- onCut={eventHandler('cut')}
96
- onPaste={eventHandler('paste')}
97
- />,
98
- container,
99
- );
100
-
101
- let event;
102
- event = document.createEvent('Event');
103
- event.initEvent('copy', true, true);
104
- // Emulate IE8
105
- Object.defineProperty(event, 'target', {
106
- get() {},
107
- });
108
- Object.defineProperty(event, 'srcElement', {
109
- get() {
110
- return div;
111
- },
112
- });
113
- div.dispatchEvent(event);
114
-
115
- event = document.createEvent('Event');
116
- event.initEvent('cut', true, true);
117
- // Emulate IE8
118
- Object.defineProperty(event, 'target', {
119
- get() {},
120
- });
121
- Object.defineProperty(event, 'srcElement', {
122
- get() {
123
- return div;
124
- },
125
- });
126
- div.dispatchEvent(event);
127
-
128
- event = document.createEvent('Event');
129
- event.initEvent('paste', true, true);
130
- // Emulate IE8
131
- Object.defineProperty(event, 'target', {
132
- get() {},
133
- });
134
- Object.defineProperty(event, 'srcElement', {
135
- get() {
136
- return div;
137
- },
138
- });
139
- div.dispatchEvent(event);
140
-
141
- expect(expectedCount).toBe(3);
142
- });
143
-
82
it('is able to `preventDefault` and `stopPropagation`', () => {
83
let expectedCount = 0;
84
packages/react-dom/src/events/__tests__/SyntheticEvent-test.js
-27
@@ -30,33 +30,6 @@ describe('SyntheticEvent', () => {
30
container = null;
31
});
32
33
- it('should normalize `target` from the nativeEvent', () => {
34
- let node;
35
- let expectedCount = 0;
36
-
37
- const eventHandler = syntheticEvent => {
38
- expect(syntheticEvent.target).toBe(node);
39
-
40
- expectedCount++;
41
- };
42
- node = ReactDOM.render(<div onClick={eventHandler} />, container);
43
-
44
- const event = document.createEvent('Event');
45
- event.initEvent('click', true, true);
46
- // Emulate IE8
47
- Object.defineProperty(event, 'target', {
48
- get() {},
49
- });
50
- Object.defineProperty(event, 'srcElement', {
51
- get() {
52
- return node;
53
- },
54
- });
55
- node.dispatchEvent(event);
56
-
57
- expect(expectedCount).toBe(1);
58
- });
59
-
33
it('should be able to `preventDefault`', () => {
34
let node;
35
let expectedCount = 0;
packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js
-70
@@ -454,76 +454,6 @@ describe('SyntheticKeyboardEvent', () => {
454
});
455
456
describe('EventInterface', () => {
457
- it('normalizes properties from the Event interface', () => {
458
- let expectedCount = 0;
459
- let div;
460
- const eventHandler = type => event => {
461
- expect(event.target).toBe(div);
462
- expect(event.type).toBe(type);
463
- expectedCount++;
464
- };
465
- div = ReactDOM.render(
466
- <div
467
- onKeyDown={eventHandler('keydown')}
468
- onKeyPress={eventHandler('keypress')}
469
- onKeyUp={eventHandler('keyup')}
470
- />,
471
- container,
472
- );
473
-
474
- let event;
475
- event = new KeyboardEvent('keydown', {
476
- keyCode: 40,
477
- bubbles: true,
478
- cancelable: true,
479
- });
480
- // Emulate IE8
481
- Object.defineProperty(event, 'target', {
482
- get() {},
483
- });
484
- Object.defineProperty(event, 'srcElement', {
485
- get() {
486
- return div;
487
- },
488
- });
489
- div.dispatchEvent(event);
490
-
491
- event = new KeyboardEvent('keyup', {
492
- keyCode: 40,
493
- bubbles: true,
494
- cancelable: true,
495
- });
496
- // Emulate IE8
497
- Object.defineProperty(event, 'target', {
498
- get() {},
499
- });
500
- Object.defineProperty(event, 'srcElement', {
501
- get() {
502
- return div;
503
- },
504
- });
505
- div.dispatchEvent(event);
506
-
507
- event = new KeyboardEvent('keypress', {
508
- charCode: 40,
509
- keyCode: 40,
510
- bubbles: true,
511
- cancelable: true,
512
- });
513
- // Emulate IE8
514
- Object.defineProperty(event, 'target', {
515
- get() {},
516
- });
517
- Object.defineProperty(event, 'srcElement', {
518
- get() {
519
- return div;
520
- },
521
- });
522
- div.dispatchEvent(event);
523
-
524
- expect(expectedCount).toBe(3);
525
- });
526
-
457
it('is able to `preventDefault` and `stopPropagation`', () => {
458
let expectedCount = 0;
459
const eventHandler = event => {
packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js
-27
@@ -29,33 +29,6 @@ describe('SyntheticWheelEvent', () => {
29
container = null;
30
});
31
32
- it('should normalize properties from the Event interface', () => {
33
- const events = [];
34
- const onWheel = event => {
35
- event.persist();
36
- events.push(event);
37
- };
38
- ReactDOM.render(<div onWheel={onWheel} />, container);
39
-
40
- const event = new MouseEvent('wheel', {
41
- bubbles: true,
42
- });
43
- // Emulate IE8
44
- Object.defineProperty(event, 'target', {
45
- get() {},
46
- });
47
- Object.defineProperty(event, 'srcElement', {
48
- get() {
49
- return container.firstChild;
50
- },
51
- });
52
- container.firstChild.dispatchEvent(event);
53
-
54
- expect(events.length).toBe(1);
55
- expect(events[0].target).toBe(container.firstChild);
56
- expect(events[0].type).toBe('wheel');
57
- });
58
-
32
it('should normalize properties from the MouseEvent interface', () => {
33
const events = [];
34
const onWheel = event => {
packages/react-dom/src/events/getEventTarget.js
+1
-1
@@ -15,7 +15,7 @@ import {TEXT_NODE} from '../shared/HTMLNodeType';
15
* @return {DOMEventTarget} Target node.
16
*/
17
function getEventTarget(nativeEvent) {
18
- let target = nativeEvent.target || nativeEvent.srcElement || window;
18
+ let target = nativeEvent.target || window;
19
20
// Normalize SVG <use> element events #4963
21
if (target.correspondingUseElement) {