From bd5a35fac8ce04deda9317831aea3a4489b9fc33 Mon Sep 17 00:00:00 2001 From: purplecabbage Date: Mon, 27 Oct 2014 15:56:01 -0700 Subject: [PATCH] CB-7868 Use utils.defineGetterSetter instead of Object.defineProperty which may or may not be defined --- src/common/init.js | 17 ++++++++--------- src/common/init_b.js | 16 +++++++--------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/common/init.js b/src/common/init.js index 758544eb9..46cca2ecb 100644 --- a/src/common/init.js +++ b/src/common/init.js @@ -24,6 +24,7 @@ var cordova = require('cordova'); var modulemapper = require('cordova/modulemapper'); var platform = require('cordova/platform'); var pluginloader = require('cordova/pluginloader'); +var utils = require('cordova/utils'); var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; @@ -55,21 +56,19 @@ function replaceNavigator(origNavigator) { for (var key in origNavigator) { if (typeof origNavigator[key] == 'function') { newNavigator[key] = origNavigator[key].bind(origNavigator); - } else { + } + else { (function(k) { - Object.defineProperty(newNavigator, k, { - get: function() { - return origNavigator[k]; - }, - configurable: true, - enumerable: true - }); - })(key); + utils.defineGetterSetter(newNavigator,key,function() { + return origNavigator[k]; + }); + })(key); } } } return newNavigator; } + if (window.navigator) { window.navigator = replaceNavigator(window.navigator); } diff --git a/src/common/init_b.js b/src/common/init_b.js index f00409b87..207cc3cc6 100644 --- a/src/common/init_b.js +++ b/src/common/init_b.js @@ -22,6 +22,7 @@ var channel = require('cordova/channel'); var cordova = require('cordova'); var platform = require('cordova/platform'); +var utils = require('cordova/utils'); var platformInitChannelsArray = [channel.onDOMContentLoaded, channel.onNativeReady]; @@ -56,16 +57,13 @@ function replaceNavigator(origNavigator) { for (var key in origNavigator) { if (typeof origNavigator[key] == 'function') { newNavigator[key] = origNavigator[key].bind(origNavigator); - } else { + } + else { (function(k) { - Object.defineProperty(newNavigator, k, { - get: function() { - return origNavigator[k]; - }, - configurable: true, - enumerable: true - }); - })(key); + utils.defineGetterSetter(newNavigator,key,function() { + return origNavigator[k]; + }); + })(key); } } }