Skip to content

Commit 35d9523

Browse files
gaearonManasJayanth
authored andcommitted
Remove IE8 event.target polyfill via srcElement (facebook#11515)
1 parent 69397d6 commit 35d9523

5 files changed

Lines changed: 1 addition & 187 deletions

File tree

packages/react-dom/src/events/__tests__/SyntheticClipboardEvent-test.js

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -79,68 +79,6 @@ describe('SyntheticClipboardEvent', () => {
7979
});
8080

8181
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-
14482
it('is able to `preventDefault` and `stopPropagation`', () => {
14583
let expectedCount = 0;
14684

packages/react-dom/src/events/__tests__/SyntheticEvent-test.js

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,33 +30,6 @@ describe('SyntheticEvent', () => {
3030
container = null;
3131
});
3232

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-
6033
it('should be able to `preventDefault`', () => {
6134
let node;
6235
let expectedCount = 0;

packages/react-dom/src/events/__tests__/SyntheticKeyboardEvent-test.js

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -454,76 +454,6 @@ describe('SyntheticKeyboardEvent', () => {
454454
});
455455

456456
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-
527457
it('is able to `preventDefault` and `stopPropagation`', () => {
528458
let expectedCount = 0;
529459
const eventHandler = event => {

packages/react-dom/src/events/__tests__/SyntheticWheelEvent-test.js

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,6 @@ describe('SyntheticWheelEvent', () => {
2929
container = null;
3030
});
3131

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-
5932
it('should normalize properties from the MouseEvent interface', () => {
6033
const events = [];
6134
const onWheel = event => {

packages/react-dom/src/events/getEventTarget.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {TEXT_NODE} from '../shared/HTMLNodeType';
1515
* @return {DOMEventTarget} Target node.
1616
*/
1717
function getEventTarget(nativeEvent) {
18-
let target = nativeEvent.target || nativeEvent.srcElement || window;
18+
let target = nativeEvent.target || window;
1919

2020
// Normalize SVG <use> element events #4963
2121
if (target.correspondingUseElement) {

0 commit comments

Comments
 (0)