var moment,
VERSION = "2.2.1",
round = Math.round,
+
+ // variable for extend closure function
+ extend,
+
i,
// internal storage for language config files
************************************/
- function extend(a, b) {
- for (var i in b) {
- if (b.hasOwnProperty(i)) {
- a[i] = b[i];
- }
+ extend = (function () {
+ var hasDontEnumBug = true,
+ dontEnums = [
+ "toString",
+ "toLocaleString",
+ "valueOf",
+ "hasOwnProperty",
+ "isPrototypeOf",
+ "propertyIsEnumerable",
+ "constructor"
+ ],
+ dontEnumsLength = dontEnums.length,
+ testObject = {
+ "toString": null
+ },
+ key;
+
+ for (key in testObject) {
+ hasDontEnumBug = false;
}
- return a;
- }
+
+ return function extend(a, b) {
+ var name,
+ index,
+ dontEnum;
+
+ for (name in b) {
+ if (b.hasOwnProperty(name)) {
+ a[name] = b[name];
+ }
+ }
+
+ if (hasDontEnumBug) {
+ for (index = 0; index < dontEnumsLength; index += 1) {
+ dontEnum = dontEnums[index];
+ if (b.hasOwnProprty(dontEnum)) {
+ a[dontEnum] = b[dontEnum];
+ }
+ }
+ }
+
+ return a;
+ };
+ }());
function absRound(number) {
if (number < 0) {