Files
angular.js/test/.eslintrc.json
T
Michał Gołębiowski-Owczarek 5b7e4b4394 chore(*): remove manualLowercase & manualUppercase functions
The `manualLowercase` & `manualUppercase` functions were inspired by Google Caja
code which worked around Java issues where problems with `toLowerCase`
working differently in Turkish locale are well known[1]. In JavaScript
`String#toLowerCase` is defined in the ECMAScript spec and all implementations
are required to lowercase I in the same way, regardless of the current locale.
Differences may (and do) happen only in `String#toLocaleLowerCase`.

The mirroring of the Java workarounds in Caja was needed due to an old Rhino bug.
Rhino is a pre-Nashorn JavaScript interpreter written in Java and it used to
delegate `String.prototype.toLowerCase` to `java.lang.String.toLowerCase`. This
has since been long fixed.

Other libraries doing string normalization, like jQuery or DOMPurify don't
apply special lowercasing logic in a Turkish environment.

Therefore, the `manualLowercase` & `manualUppercase` logic is dead code in
AngularJS and can be removed.

Also, the `manualLowercase` & `manualUppercase` functions are incomplete; they
only lowercase ASCII characters which is different to native
`String#toLowerCase`. Since those functions are used in many places in the
library, they would break a lot of code. For example, the lowercase filter would
not lowercase Ω to ω but leave it as Ω.

[1] https://garygregory.wordpress.com/2015/11/03/java-lowercase-conversion-turkey/

Closes #15890
Ref #11387
2018-04-13 09:43:38 +02:00

183 lines
4.1 KiB
JSON

{
"root": true,
"extends": "../.eslintrc-browser.json",
"env": {
"jasmine": true
},
"rules": {
// Some rules are not that important in tests and conflict with
// Jasmine or would make it easier to write some tests; we disable
// those ones here.
"no-invalid-this": "off",
"no-throw-literal": "off",
"no-unused-vars": "off"
},
"globals": {
/* browser */
"ArrayBuffer": false,
"Uint8Array": false,
/* auto/injector.js */
"createInjector": false,
/* angular.js */
"angular": false,
"minErrConfig": false,
"errorHandlingConfig": false,
"msie": false,
"jqLite": false,
"jQuery": false,
"slice": false,
"push": false,
"toString": false,
"ngMinErr": false,
"_angular": false,
"angularModule": false,
"nodeName_": false,
"uid": false,
"toDebugString": false,
"serializeObject": false,
"lowercase": false,
"uppercase": false,
"isArrayLike": false,
"forEach": false,
"reverseParams": false,
"nextUid": false,
"setHashKey": false,
"extend": false,
"merge": false,
"toInt": false,
"inherit": false,
"noop": false,
"identity": false,
"valueFn": false,
"isUndefined": false,
"isDefined": false,
"isObject": false,
"isString": false,
"isNumber": false,
"isNumberNaN": false,
"isDate": false,
"isError": false,
"isArray": false,
"isFunction": false,
"isRegExp": false,
"isWindow": false,
"isScope": false,
"isFile": false,
"isBlob": false,
"isBoolean": false,
"trim": false,
"isElement": false,
"isPromiseLike": false,
"makeMap": false,
"map": false,
"includes": false,
"arrayRemove": false,
"copy": false,
"shallowCopy": false,
"equals": false,
"csp": false,
"jq": false,
"concat": false,
"sliceArgs": false,
"bind": false,
"toJsonReplacer": false,
"toJson": false,
"fromJson": false,
"startingTag": false,
"tryDecodeURIComponent": false,
"parseKeyValue": false,
"toKeyValue": false,
"encodeUriSegment": false,
"encodeUriQuery": false,
"angularInit": false,
"bootstrap": false,
"snake_case": false,
"bindJQuery": false,
"assertArg": false,
"assertArgFn": false,
"assertNotHasOwnProperty": false,
"getter": false,
"getBlockNodes": false,
"createMap": false,
"VALIDITY_STATE_PROPERTY": true,
"allowAutoBootstrap": false,
"isAutoBootstrapAllowed": false,
/* AngularPublic.js */
"version": false,
"publishExternalAPI": false,
/* minerr.js */
"minErr": false,
/* loader.js */
"setupModuleLoader": false,
/* jqLite.js */
"BOOLEAN_ATTR": false,
"jqNextId": false,
"kebabToCamel": false,
"fnCamelCaseReplace": false,
"jqLitePatchJQueryRemove": false,
"JQLite": false,
"jqLiteClone": false,
"jqLiteDealoc": false,
"jqLiteOff": false,
"jqLiteRemoveData": false,
"jqLiteExpandoStore": false,
"jqLiteData": false,
"jqLiteHasClass": false,
"jqLiteRemoveClass": false,
"jqLiteAddClass": false,
"jqLiteAddNodes": false,
"jqLiteController": false,
"jqLiteInheritedData": false,
"getBooleanAttrName": false,
"createEventHandler": false,
"JQLitePrototype": false,
"jqLiteDocumentLoaded": false,
/* apis.js */
"hashKey": false,
"NgMapShim": false,
/* urlUtils.js */
"urlResolve": false,
"urlIsSameOrigin": false,
"urlIsSameOriginAsBaseUrl": false,
"urlIsAllowedOriginFactory": false,
/* karma */
"dump": false,
"they": false,
"fthey": false,
"xthey": false,
"assertCompareNodes": false,
/* testabilityPatch / matchers */
"inject": false,
"module": false,
"dealoc": false,
"_jQuery": false,
"_jqLiteMode": false,
"sortedHtml": false,
"childrenTagsOf": false,
"assertHidden": false,
"assertVisible": false,
"provideLog": false,
"spyOnlyCallsWithArgs": false,
"createMockStyleSheet": false,
"browserSupportsCssAnimations": false,
"browserTrigger": false,
"jqLiteCacheSize": false,
"createAsync": false,
"support": false
}
}