diff --git a/src/.jshintrc b/src/.jshintrc
index 0a9094787c39..3350af2e47c4 100644
--- a/src/.jshintrc
+++ b/src/.jshintrc
@@ -85,7 +85,6 @@
"toJsonReplacer": false,
"toJson": false,
"fromJson": false,
- "toBoolean": false,
"startingTag": false,
"tryDecodeURIComponent": false,
"parseKeyValue": false,
diff --git a/src/Angular.js b/src/Angular.js
index 711483a26fd3..3fee136d73df 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -66,7 +66,6 @@
-toJsonReplacer,
-toJson,
-fromJson,
- -toBoolean,
-startingTag,
-tryDecodeURIComponent,
-parseKeyValue,
@@ -1028,18 +1027,6 @@ function fromJson(json) {
}
-function toBoolean(value) {
- if (typeof value === 'function') {
- value = true;
- } else if (value && value.length !== 0) {
- var v = lowercase("" + value);
- value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]');
- } else {
- value = false;
- }
- return value;
-}
-
/**
* @returns {string} Returns the string representation of the element.
*/
diff --git a/src/ng/directive/input.js b/src/ng/directive/input.js
index 039f6abd77c1..fd49f8e5ed4e 100644
--- a/src/ng/directive/input.js
+++ b/src/ng/directive/input.js
@@ -917,7 +917,7 @@ function textInputType(scope, element, attr, ctrl, $sniffer, $browser) {
// By default we will trim the value
// If the attribute ng-trim exists we will avoid trimming
// e.g.
- if (toBoolean(attr.ngTrim || 'T')) {
+ if (!attr.ngTrim || attr.ngTrim !== 'false') {
value = trim(value);
}
diff --git a/src/ng/directive/ngIf.js b/src/ng/directive/ngIf.js
index f75674039a1d..12cff12340b1 100644
--- a/src/ng/directive/ngIf.js
+++ b/src/ng/directive/ngIf.js
@@ -87,7 +87,7 @@ var ngIfDirective = ['$animate', function($animate) {
var block, childScope, previousElements;
$scope.$watch($attr.ngIf, function ngIfWatchAction(value) {
- if (toBoolean(value)) {
+ if (!!value) {
if (!childScope) {
$transclude(function (clone, newScope) {
childScope = newScope;
diff --git a/src/ng/directive/ngShowHide.js b/src/ng/directive/ngShowHide.js
index a04357eca07d..3c756e6ceaca 100644
--- a/src/ng/directive/ngShowHide.js
+++ b/src/ng/directive/ngShowHide.js
@@ -19,15 +19,10 @@
*
* ```
*
- * When the ngShow expression evaluates to false then the ng-hide CSS class is added to the class attribute
- * on the element causing it to become hidden. When true, the ng-hide CSS class is removed
+ * When the ngShow expression evaluates to a falsy value then the ng-hide CSS class is added to the class
+ * attribute on the element causing it to become hidden. When true, the ng-hide CSS class is removed
* from the element causing the element not to appear hidden.
*
- *
- * **Note:** Here is a list of values that ngShow will consider as a falsy value (case insensitive):
- * "f" / "0" / "false" / "no" / "n" / "[]"
- *
- *
* ## Why is !important used?
*
* You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector
@@ -163,7 +158,7 @@
var ngShowDirective = ['$animate', function($animate) {
return function(scope, element, attr) {
scope.$watch(attr.ngShow, function ngShowWatchAction(value){
- $animate[toBoolean(value) ? 'removeClass' : 'addClass'](element, 'ng-hide');
+ $animate[!!value ? 'removeClass' : 'addClass'](element, 'ng-hide');
});
};
}];
@@ -188,15 +183,10 @@ var ngShowDirective = ['$animate', function($animate) {
*
* ```
*
- * When the ngHide expression evaluates to true then the .ng-hide CSS class is added to the class attribute
- * on the element causing it to become hidden. When false, the ng-hide CSS class is removed
+ * When the ngHide expression evaluates to a truthy value then the .ng-hide CSS class is added to the class
+ * attribute on the element causing it to become hidden. When false, the ng-hide CSS class is removed
* from the element causing the element not to appear hidden.
*
- *
- * **Note:** Here is a list of values that ngHide will consider as a falsy value (case insensitive):
- * "f" / "0" / "false" / "no" / "n" / "[]"
- *