diff options
44 files changed, 1044 insertions, 1088 deletions
diff --git a/node_modules/montage/core/converter/converter.js b/node_modules/montage/core/converter/converter.js index abce44e2..a23d2702 100755 --- a/node_modules/montage/core/converter/converter.js +++ b/node_modules/montage/core/converter/converter.js | |||
@@ -20,16 +20,6 @@ var FUNCTION_CLASS = '[object Function]', | |||
20 | 20 | ||
21 | var _toString = Object.prototype.toString; | 21 | var _toString = Object.prototype.toString; |
22 | 22 | ||
23 | // TODO should maybe move these into String.isString and Number.isNumber to parallel Array.isArray | ||
24 | |||
25 | /** | ||
26 | @exports module:montage/core/converter#isString | ||
27 | @function | ||
28 | */ | ||
29 | var isString = function(object) { | ||
30 | return _toString.call(object) === STRING_CLASS; | ||
31 | }; | ||
32 | exports.isString = isString; | ||
33 | 23 | ||
34 | /** | 24 | /** |
35 | @exports module:montage/core/converter#isNumber | 25 | @exports module:montage/core/converter#isNumber |
diff --git a/node_modules/montage/core/converter/date-converter.js b/node_modules/montage/core/converter/date-converter.js index f0d3e540..f484f7aa 100755 --- a/node_modules/montage/core/converter/date-converter.js +++ b/node_modules/montage/core/converter/date-converter.js | |||
@@ -2502,16 +2502,13 @@ var _toString = Object.prototype.toString; | |||
2502 | var isDate = function(object) { | 2502 | var isDate = function(object) { |
2503 | return _toString.call(object) === DATE_CLASS; | 2503 | return _toString.call(object) === DATE_CLASS; |
2504 | }; | 2504 | }; |
2505 | var isString = function(object) { | ||
2506 | return _toString.call(object) === STRING_CLASS; | ||
2507 | }; | ||
2508 | var isNumber = function(object) { | 2505 | var isNumber = function(object) { |
2509 | return _toString.call(object) === NUMBER_CLASS; | 2506 | return _toString.call(object) === NUMBER_CLASS; |
2510 | }; | 2507 | }; |
2511 | 2508 | ||
2512 | var formatDate = function(v, format) { | 2509 | var formatDate = function(v, format) { |
2513 | var date; | 2510 | var date; |
2514 | if (isString(v)) { | 2511 | if (String.isString(v)) { |
2515 | // try to create a Date instance from the string | 2512 | // try to create a Date instance from the string |
2516 | // date must be a string that can be parsed by Date | 2513 | // date must be a string that can be parsed by Date |
2517 | // see - http://www.w3schools.com/jsref/jsref_parse.asp | 2514 | // see - http://www.w3schools.com/jsref/jsref_parse.asp |
@@ -2605,7 +2602,7 @@ var DateConverter = exports.DateConverter = Montage.create(Converter,/** @lends | |||
2605 | */ | 2602 | */ |
2606 | convert: { | 2603 | convert: { |
2607 | value: function(v) { | 2604 | value: function(v) { |
2608 | if (isDate(v) || isString(v) || isNumber(v)) { | 2605 | if (isDate(v) || String.isString(v) || isNumber(v)) { |
2609 | return formatDate(v, this.pattern); | 2606 | return formatDate(v, this.pattern); |
2610 | } | 2607 | } |
2611 | return v; | 2608 | return v; |
@@ -2617,6 +2614,9 @@ var DateConverter = exports.DateConverter = Montage.create(Converter,/** @lends | |||
2617 | */ | 2614 | */ |
2618 | revert: { | 2615 | revert: { |
2619 | value: function(v) { | 2616 | value: function(v) { |
2617 | if(isDate(v)) { | ||
2618 | return v; | ||
2619 | } | ||
2620 | this.validator.pattern = this.pattern; | 2620 | this.validator.pattern = this.pattern; |
2621 | 2621 | ||
2622 | var result = this.validator.validate(v); | 2622 | var result = this.validator.validate(v); |
diff --git a/node_modules/montage/core/core.js b/node_modules/montage/core/core.js index 8c1f4249..ff94f303 100755 --- a/node_modules/montage/core/core.js +++ b/node_modules/montage/core/core.js | |||
@@ -12,6 +12,16 @@ | |||
12 | */ | 12 | */ |
13 | require("core/shim"); | 13 | require("core/shim"); |
14 | 14 | ||
15 | var ATTRIBUTE_PROPERTIES = "AttributeProperties", | ||
16 | UNDERSCORE = "_", | ||
17 | PROTO = "__proto__", | ||
18 | VALUE = "value", | ||
19 | ENUMERABLE = "enumerable", | ||
20 | SERIALIZABLE = "serializable", | ||
21 | MODIFY = "modify"; | ||
22 | |||
23 | |||
24 | |||
15 | /** | 25 | /** |
16 | @external Object | 26 | @external Object |
17 | */ | 27 | */ |
@@ -78,14 +88,14 @@ Object.defineProperty(M, "create", { | |||
78 | } | 88 | } |
79 | }); | 89 | }); |
80 | 90 | ||
81 | var extendedPropertyAttributes = ["serializable", "modify"]; | 91 | var extendedPropertyAttributes = [SERIALIZABLE, MODIFY]; |
82 | 92 | ||
83 | // Extended property attributes, the property name format is "_" + attributeName + "AttributeProperties" | 93 | // Extended property attributes, the property name format is "_" + attributeName + "AttributeProperties" |
84 | /** | 94 | /** |
85 | @member external:Object#extendedPropertyAttributes | 95 | @member external:Object#extendedPropertyAttributes |
86 | */ | 96 | */ |
87 | extendedPropertyAttributes.forEach(function(name) { | 97 | extendedPropertyAttributes.forEach(function(name) { |
88 | Object.defineProperty(Object.prototype, "_" + name + "AttributeProperties", { | 98 | Object.defineProperty(Object.prototype, UNDERSCORE + name + ATTRIBUTE_PROPERTIES, { |
89 | enumerable: false, | 99 | enumerable: false, |
90 | configurable: false, | 100 | configurable: false, |
91 | writable: false, | 101 | writable: false, |
@@ -112,11 +122,11 @@ Object.defineProperty(M, "defineProperty", { | |||
112 | value: function(obj, prop, descriptor) { | 122 | value: function(obj, prop, descriptor) { |
113 | var dependencies = descriptor.dependencies; | 123 | var dependencies = descriptor.dependencies; |
114 | //reset defaults appropriately for framework. | 124 | //reset defaults appropriately for framework. |
115 | if ("__proto__" in descriptor) { | 125 | if (PROTO in descriptor) { |
116 | descriptor.__proto__ = ("value" in descriptor ? (typeof descriptor.value === "function" ? _defaultFunctionValueProperty : _defaultObjectValueProperty) : _defaultAccessorProperty); | 126 | descriptor.__proto__ = (VALUE in descriptor ? (typeof descriptor.value === "function" ? _defaultFunctionValueProperty : _defaultObjectValueProperty) : _defaultAccessorProperty); |
117 | } else { | 127 | } else { |
118 | var defaults; | 128 | var defaults; |
119 | if ("value" in descriptor) { | 129 | if (VALUE in descriptor) { |
120 | if (typeof descriptor.value === "function") { | 130 | if (typeof descriptor.value === "function") { |
121 | defaults = _defaultFunctionValueProperty; | 131 | defaults = _defaultFunctionValueProperty; |
122 | } else { | 132 | } else { |
@@ -133,7 +143,7 @@ Object.defineProperty(M, "defineProperty", { | |||
133 | } | 143 | } |
134 | 144 | ||
135 | 145 | ||
136 | if (!descriptor.hasOwnProperty("enumerable") && prop.charAt(0) === "_") { | 146 | if (!descriptor.hasOwnProperty(ENUMERABLE) && prop.charAt(0) === UNDERSCORE) { |
137 | descriptor.enumerable = false; | 147 | descriptor.enumerable = false; |
138 | } | 148 | } |
139 | if (dependencies) { | 149 | if (dependencies) { |
@@ -146,13 +156,13 @@ Object.defineProperty(M, "defineProperty", { | |||