(expr)
| 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, |
no test coverage detected