Skip to content

Commit cb45eaa

Browse files
nicklockwoodfacebook-github-bot-3
authored andcommitted
Made Map & Set polyfills available globally
Summary: public Map and Set are a standard JavaScript features, but are only supported in a subset of JSC versions that we target (e.g. iOS 7's JSC doesn't support Set). The consequence of this is that failing to require('Set') before using it won't error during testing on a modern OS, but will fail on older OS versions. This diff makes the Map and Set polyfills available globally to all RN apps to avoid that problem. Reviewed By: davidaurelio Differential Revision: D2833997 fb-gh-sync-id: 713d8b69f6a1bce2472a1b2e6b84f69d75f30289
1 parent 4afeb43 commit cb45eaa

7 files changed

Lines changed: 6 additions & 7 deletions

File tree

Libraries/AppStateIOS/AppStateIOS.ios.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
*/
1212
'use strict';
1313

14-
var Map = require('Map');
1514
var NativeModules = require('NativeModules');
1615
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
1716
var RCTAppState = NativeModules.AppState;

Libraries/CustomComponents/Navigator/Navigator.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
var AnimationsDebugModule = require('NativeModules').AnimationsDebugModule;
3131
var Dimensions = require('Dimensions');
3232
var InteractionMixin = require('InteractionMixin');
33-
var Map = require('Map');
3433
var NavigationContext = require('NavigationContext');
3534
var NavigatorBreadcrumbNavigationBar = require('NavigatorBreadcrumbNavigationBar');
3635
var NavigatorNavigationBar = require('NavigatorNavigationBar');

Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,15 @@ function setUpGeolocation() {
150150
polyfillGlobal('geolocation', require('Geolocation'), GLOBAL.navigator);
151151
}
152152

153+
function setUpMapAndSet() {
154+
polyfillGlobal('Map', require('Map'));
155+
polyfillGlobal('Set', require('Set'));
156+
}
157+
153158
function setUpProduct() {
154159
Object.defineProperty(GLOBAL.navigator, 'product', {value: 'ReactNative'});
155160
}
156161

157-
158162
function setUpWebSockets() {
159163
polyfillGlobal('WebSocket', require('WebSocket'));
160164
}
@@ -198,6 +202,7 @@ setUpPromise();
198202
setUpErrorHandler();
199203
setUpXHR();
200204
setUpGeolocation();
205+
setUpMapAndSet();
201206
setUpProduct();
202207
setUpWebSockets();
203208
setUpProfile();

Libraries/LinkingIOS/LinkingIOS.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
1515
var RCTLinkingManager = require('NativeModules').LinkingManager;
16-
var Map = require('Map');
1716
var invariant = require('invariant');
1817

1918
var _notifHandlers = new Map();

Libraries/PushNotificationIOS/PushNotificationIOS.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
*/
1212
'use strict';
1313

14-
var Map = require('Map');
1514
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
1615
var RCTPushNotificationManager = require('NativeModules').PushNotificationManager;
1716
var invariant = require('invariant');

Libraries/ReactIOS/YellowBox.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
const EventEmitter = require('EventEmitter');
1616
import type EmitterSubscription from 'EmitterSubscription';
17-
const Map = require('Map');
1817
const Platform = require('Platform');
1918
const React = require('React');
2019
const StyleSheet = require('StyleSheet');

Libraries/Utilities/BackAndroid.android.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
'use strict';
1313

14-
var Set = require('Set');
1514
var DeviceEventManager = require('NativeModules').DeviceEventManager;
1615
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
1716

0 commit comments

Comments
 (0)