MCPcopy Index your code
hub / github.com/BloombergGraphics/whatiscode / reinterpretAsCoverFormalsList

Function reinterpretAsCoverFormalsList

scripts/libs/esprima.js:3027–3088  ·  view source on GitHub ↗
(expr)

Source from the content-addressed store, hash-verified

3025 }
3026
3027 function reinterpretAsCoverFormalsList(expr) {
3028 var i, len, param, params, defaults, defaultCount, options, token;
3029
3030 defaults = [];
3031 defaultCount = 0;
3032 params = [expr];
3033
3034 switch (expr.type) {
3035 case Syntax.Identifier:
3036 case Syntax.AssignmentExpression:
3037 break;
3038 case Syntax.SequenceExpression:
3039 params = expr.expressions;
3040 break;
3041 case PlaceHolders.ArrowParameterPlaceHolder:
3042 params = expr.params;
3043 break;
3044 default:
3045 return null;
3046 }
3047
3048 options = {
3049 paramSet: {}
3050 };
3051
3052 for (i = 0, len = params.length; i < len; i += 1) {
3053 param = params[i];
3054 if (param.type === Syntax.Identifier) {
3055 params[i] = param;
3056 defaults.push(null);
3057 validateParam(options, param, param.name);
3058 } else if (param.type === Syntax.RestElement) {
3059 params[i] = param;
3060 defaults.push(null);
3061 validateParam(options, param.argument, param.argument.name);
3062 } else if (param.type === Syntax.AssignmentExpression) {
3063 params[i] = param.left;
3064 defaults.push(param.right);
3065 ++defaultCount;
3066 validateParam(options, param.left, param.left.name);
3067 } else {
3068 return null;
3069 }
3070 }
3071
3072 if (options.message === Messages.StrictParamDupe) {
3073 token = strict ? options.stricted : options.firstRestricted;
3074 throwUnexpectedToken(token, options.message);
3075 }
3076
3077 if (defaultCount === 0) {
3078 defaults = [];
3079 }
3080
3081 return {
3082 params: params,
3083 defaults: defaults,
3084 stricted: options.stricted,

Callers 1

Calls 2

validateParamFunction · 0.85
throwUnexpectedTokenFunction · 0.85

Tested by

no test coverage detected