MCPcopy Create free account
hub / github.com/apache/cloudstack / cspSafeGetterFn

Function cspSafeGetterFn

tools/ngui/static/js/lib/angular.js:6464–6526  ·  view source on GitHub ↗

* Implementation of the "Black Hole" variant from: * - http://jsperf.com/angularjs-parse-getter/4 * - http://jsperf.com/path-evaluation-simplified/7

(key0, key1, key2, key3, key4)

Source from the content-addressed store, hash-verified

6462 * - http://jsperf.com/path-evaluation-simplified/7
6463 */
6464function cspSafeGetterFn(key0, key1, key2, key3, key4) {
6465 return function(scope, locals) {
6466 var pathVal = (locals && locals.hasOwnProperty(key0)) ? locals : scope,
6467 promise;
6468
6469 if (pathVal === null || pathVal === undefined) return pathVal;
6470
6471 pathVal = pathVal[key0];
6472 if (pathVal && pathVal.then) {
6473 if (!("$$v" in pathVal)) {
6474 promise = pathVal;
6475 promise.$$v = undefined;
6476 promise.then(function(val) { promise.$$v = val; });
6477 }
6478 pathVal = pathVal.$$v;
6479 }
6480 if (!key1 || pathVal === null || pathVal === undefined) return pathVal;
6481
6482 pathVal = pathVal[key1];
6483 if (pathVal && pathVal.then) {
6484 if (!("$$v" in pathVal)) {
6485 promise = pathVal;
6486 promise.$$v = undefined;
6487 promise.then(function(val) { promise.$$v = val; });
6488 }
6489 pathVal = pathVal.$$v;
6490 }
6491 if (!key2 || pathVal === null || pathVal === undefined) return pathVal;
6492
6493 pathVal = pathVal[key2];
6494 if (pathVal && pathVal.then) {
6495 if (!("$$v" in pathVal)) {
6496 promise = pathVal;
6497 promise.$$v = undefined;
6498 promise.then(function(val) { promise.$$v = val; });
6499 }
6500 pathVal = pathVal.$$v;
6501 }
6502 if (!key3 || pathVal === null || pathVal === undefined) return pathVal;
6503
6504 pathVal = pathVal[key3];
6505 if (pathVal && pathVal.then) {
6506 if (!("$$v" in pathVal)) {
6507 promise = pathVal;
6508 promise.$$v = undefined;
6509 promise.then(function(val) { promise.$$v = val; });
6510 }
6511 pathVal = pathVal.$$v;
6512 }
6513 if (!key4 || pathVal === null || pathVal === undefined) return pathVal;
6514
6515 pathVal = pathVal[key4];
6516 if (pathVal && pathVal.then) {
6517 if (!("$$v" in pathVal)) {
6518 promise = pathVal;
6519 promise.$$v = undefined;
6520 promise.then(function(val) { promise.$$v = val; });
6521 }

Callers 1

getterFnFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected