From: Lucas Sanders Date: Sun, 19 Mar 2017 03:58:05 +0000 (-0400) Subject: Immutable Locale#set X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9834aaa9c9b17cca7c31ab62f74f7bb561fd0d65;p=thirdparty%2Fmoment.git Immutable Locale#set --- diff --git a/src/lib/locale/constructor.js b/src/lib/locale/constructor.js index dfaaed2a3..fb8b3f1aa 100644 --- a/src/lib/locale/constructor.js +++ b/src/lib/locale/constructor.js @@ -1,7 +1,23 @@ -import { set } from './set'; +import isFunction from '../utils/is-function'; export function Locale(config) { - if (config != null) { - set.call(this, config); + if (config == null) { + return; } + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + (/\d{1,2}/).source); } diff --git a/src/lib/locale/prototype.js b/src/lib/locale/prototype.js index 5be98757f..a357ba3a7 100644 --- a/src/lib/locale/prototype.js +++ b/src/lib/locale/prototype.js @@ -9,7 +9,6 @@ import { ordinal } from './ordinal'; import { preParsePostFormat } from './pre-post-format'; import { relativeTime, pastFuture } from './relative'; import { set } from './set'; -import wrap from '../utils/wrap'; proto.calendar = calendar; proto.longDateFormat = longDateFormat; @@ -19,7 +18,7 @@ proto.preparse = preParsePostFormat; proto.postformat = preParsePostFormat; proto.relativeTime = relativeTime; proto.pastFuture = pastFuture; -proto.set = wrap(Locale, set); +proto.set = set; // Month import { diff --git a/src/lib/locale/set.js b/src/lib/locale/set.js index c63d5adec..afa19b6ac 100644 --- a/src/lib/locale/set.js +++ b/src/lib/locale/set.js @@ -1,25 +1,10 @@ -import isFunction from '../utils/is-function'; +import { Locale } from './constructor'; import extend from '../utils/extend'; import isObject from '../utils/is-object'; import hasOwnProp from '../utils/has-own-prop'; export function set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (isFunction(prop)) { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - this._config = config; - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. - // TODO: Remove "ordinalParse" fallback in next major release. - this._dayOfMonthOrdinalParseLenient = new RegExp( - (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + - '|' + (/\d{1,2}/).source); + return new Locale(mergeConfigs(this._config, config)); } export function mergeConfigs(parentConfig, childConfig) {