]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Fix indexOf and Object.keys for IE8
authorIskren Chernev <iskren.chernev@gmail.com>
Mon, 18 Apr 2016 06:39:23 +0000 (23:39 -0700)
committerIskren Chernev <iskren.chernev@gmail.com>
Mon, 18 Apr 2016 06:39:23 +0000 (23:39 -0700)
src/lib/locale/locales.js
src/lib/utils/keys.js [new file with mode: 0644]
src/test/moment/locale.js

index b2386064b7b75374c14ba582b2038bb3bc42c9c1..9cf6ef4f7027ebca3eefc1929944904ed5f5e283 100644 (file)
@@ -4,6 +4,7 @@ import compareArrays from '../utils/compare-arrays';
 import { deprecateSimple } from '../utils/deprecate';
 import { mergeConfigs } from './set';
 import { Locale } from './constructor';
+import keys from '../utils/keys';
 
 // internal storage for locale config files
 var locales = {};
@@ -159,5 +160,5 @@ export function getLocale (key) {
 }
 
 export function listLocales() {
-    return Object.keys(locales);
+    return keys(locales);
 }
diff --git a/src/lib/utils/keys.js b/src/lib/utils/keys.js
new file mode 100644 (file)
index 0000000..2da4e32
--- /dev/null
@@ -0,0 +1,19 @@
+import hasOwnProp from './has-own-prop';
+
+var keys;
+
+if (Object.keys) {
+    keys = Object.keys;
+} else {
+    keys = function (obj) {
+        var i, res = [];
+        for (i in obj) {
+            if (hasOwnProp(obj, i)) {
+                res.push(i);
+            }
+        }
+        return res;
+    };
+}
+
+export { keys as default };
index 3d320ad46038e27b39a6674ab19870a365b4ea63..186c649dfe2f1163874c08a6b11abdec6d051fe5 100644 (file)
@@ -1,6 +1,7 @@
 import { module, test } from '../qunit';
 import moment from '../../moment';
 import each from '../helpers/each';
+import indexOf from '../../lib/utils/index-of';
 
 module('locale', {
     setup : function () {
@@ -157,8 +158,8 @@ test('defineLocale', function (assert) {
 
 test('locales', function (assert) {
     moment.defineLocale('dude', {months: ['Movember']});
-    assert.equal(true, !!~moment.locales().indexOf('dude'), 'locales returns an array of defined locales');
-    assert.equal(true, !!~moment.locales().indexOf('en'), 'locales should always include english');
+    assert.equal(true, !!~indexOf.call(moment.locales(), 'dude'), 'locales returns an array of defined locales');
+    assert.equal(true, !!~indexOf.call(moment.locales(), 'en'), 'locales should always include english');
     moment.defineLocale('dude', null);
 });