@samitouri / QOS-React / commits / fe10b8d0cd

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) {