1local assertNames(fun, params) = assert test.paramNames(std[fun]) == params: "Wrong params for std.%s, expected %s, got %s" % [fun, params, test.paramNames(std[fun])]; true;23local names = {4 id: ['x'],5 isString: ['v'],6 isNumber: ['v'],7 isBoolean: ['v'],8 isObject: ['v'],9 isArray: ['v'],10 isFunction: ['v'],11 toString: ['a'],12 substr: ['str', 'from', 'len'],13 startsWith: ['a', 'b'],14 endsWith: ['a', 'b'],15 lstripChars: ['str', 'chars'],16 rstripChars: ['str', 'chars'],17 stripChars: ['str', 'chars'],18 stringChars: ['str'],19 parseInt: ['str'],20 parseOctal: ['str'],21 parseHex: ['str'],22 split: ['str', 'c'],23 splitLimit: ['str', 'c', 'maxsplits'],24 splitLimitR: ['str', 'c', 'maxsplits'],25 strReplace: ['str', 'from', 'to'],26 asciiUpper: ['str'],27 asciiLower: ['str'],28 range: ['from', 'to'],29 repeat: ['what', 'count'],30 slice: ['indexable', 'index', 'end', 'step'],31 member: ['arr', 'x'],32 count: ['arr', 'x'],33 mod: ['a', 'b'],34 map: ['func', 'arr'],35 mapWithIndex: ['func', 'arr'],36 mapWithKey: ['func', 'obj'],37 flatMap: ['func', 'arr'],38 join: ['sep', 'arr'],39 lines: ['arr'],40 deepJoin: ['arr'],41 format: ['str', 'vals'],42 foldr: ['func', 'arr', 'init'],43 foldl: ['func', 'arr', 'init'],44 filterMap: ['filter_func', 'map_func', 'arr'],45 assertEqual: ['a', 'b'],46 abs: ['n'],47 sign: ['n'],48 max: ['a', 'b'],49 min: ['a', 'b'],50 clamp: ['x', 'minVal', 'maxVal'],51 flattenArrays: ['arrs'],52 flattenDeepArray: ['value'],53 manifestIni: ['ini'],54 manifestToml: ['value'],55 manifestTomlEx: ['value', 'indent'],56 escapeStringJson: ['str_'],57 escapeStringPython: ['str'],58 escapeStringBash: ['str_'],59 escapeStringDollars: ['str_'],60 escapeStringXML: ['str_'],61 manifestJson: ['value'],62 manifestJsonMinified: ['value'],63 manifestJsonEx: ['value', 'indent', 'newline', 'key_val_sep'],64 manifestYamlDoc: ['value', 'indent_array_in_object', 'quote_keys'],65 manifestYamlStream: ['value', 'indent_array_in_object', 'c_document_end', 'quote_keys'],66 manifestPython: ['v'],67 manifestPythonVars: ['conf'],68 manifestXmlJsonml: ['value'],69 base64: ['input'],70 base64DecodeBytes: ['str'],71 base64Decode: ['str'],72 reverse: ['arr'],73 sort: ['arr', 'keyF'],74 uniq: ['arr', 'keyF'],75 set: ['arr', 'keyF'],76 setMember: ['x', 'arr', 'keyF'],77 setUnion: ['a', 'b', 'keyF'],78 setInter: ['a', 'b', 'keyF'],79 setDiff: ['a', 'b', 'keyF'],80 mergePatch: ['target', 'patch'],81 get: ['o', 'f', 'default', 'inc_hidden'],82 objectFields: ['o'],83 objectFieldsAll: ['o'],84 objectHas: ['o', 'f'],85 objectHasAll: ['o', 'f'],86 objectValues: ['o'],87 objectValuesAll: ['o'],88 equals: ['a', 'b'],89 resolvePath: ['f', 'r'],90 prune: ['a'],91 findSubstr: ['pat', 'str'],92 find: ['value', 'arr'],93 all: ['arr'],94 any: ['arr'],9596 makeArray: ['sz', 'func'],97 pow: ['x', 'n'],98 floor: ['x'],99 ceil: ['x'],100 sqrt: ['x'],101 sin: ['x'],102 cos: ['x'],103 tan: ['x'],104 asin: ['x'],105 acos: ['x'],106 atan: ['x'],107 atan2: ['y', 'x'],108 type: ['x'],109 filter: ['func', 'arr'],110 objectHasEx: ['obj', 'fname', 'hidden'],111 length: ['x'],112 objectFieldsEx: ['obj', 'hidden'],113 codepoint: ['str'],114 char: ['n'],115 log: ['x'],116 exp: ['x'],117 mantissa: ['x'],118 exponent: ['x'],119 modulo: ['x', 'y'],120 extVar: ['x'],121 primitiveEquals: ['x', 'y'],122 native: ['x'],123 md5: ['s'],124 trace: ['str', 'rest'],125 parseJson: ['str'],126 parseYaml: ['str'],127 encodeUTF8: ['str'],128 decodeUTF8: ['arr'],129130 sum: ['arr'],131 avg: ['arr', 'onEmpty'],132 minArray: ['arr', 'keyF', 'onEmpty'],133 maxArray: ['arr', 'keyF', 'onEmpty'],134 remove: ['arr', 'elem'],135 contains: ['arr', 'elem'],136 removeAt: ['arr', 'at'],137138 equalsIgnoreCase: ['str1', 'str2'],139 isEmpty: ['str'],140141 xor: ['x', 'y'],142 xnor: ['x', 'y'],143 isInteger: ['x'],144 isDecimal: ['x'],145 isEven: ['x'],146 isOdd: ['x'],147 round: ['x'],148149 sha1: ['str'],150 sha256: ['str'],151 sha512: ['str'],152 sha3: ['str'],153154 objectKeysValues: ['o'],155 objectKeysValuesAll: ['o'],156 objectRemoveKey: ['obj', 'key'],157158 159 __compare: ['v1', 'v2'],160 __compare_array: ['arr1', 'arr2'],161 __array_less: ['arr1', 'arr2'],162 __array_greater: ['arr1', 'arr2'],163 __array_less_or_equal: ['arr1', 'arr2'],164 __array_greater_or_equal: ['arr1', 'arr2'],165};166167std.all(std.map(function(key) assertNames(key, names[key]), std.objectFields(names)))168&& std.all([169 assert std.objectHasAll(names, key): ('function "%s" is not defined in names'170 % key); true,171 for key in std.objectFieldsAll(std)172 if key != 'thisFile'173])