Changeset 287136 in webkit for trunk/Source/JavaScriptCore/builtins
- Timestamp:
- Dec 16, 2021, 8:10:09 AM (4 years ago)
- Location:
- trunk/Source/JavaScriptCore/builtins
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/builtins/ArrayPrototype.js
r279937 r287136 157 157 } 158 158 159 function groupBy(callback /*, thisArg */) 160 { 161 var array = @toObject(this, "Array.prototype.groupBy requires that |this| not be null or undefined"); 162 var length = @toLength(array.length); 163 164 if (!@isCallable(callback)) 165 @throwTypeError("Array.prototype.groupBy callback must be a function"); 166 167 var thisArg = @argument(1); 168 169 var groups = @Object.@create(null); 170 for (var i = 0; i < length; ++i) { 171 var value = array[i]; 172 var key = @toPropertyKey(callback.@call(thisArg, value, i, array)); 173 var group = groups[key]; 174 if (!group) { 175 group = []; 176 @putByValDirect(groups, key, group); 177 } 178 @putByValDirect(group, group.length, value); 179 } 180 return groups; 181 } 182 183 function groupByToMap(callback /*, thisArg */) 184 { 185 var array = @toObject(this, "Array.prototype.groupByToMap requires that |this| not be null or undefined"); 186 var length = @toLength(array.length); 187 188 if (!@isCallable(callback)) 189 @throwTypeError("Array.prototype.groupByToMap callback must be a function"); 190 191 var thisArg = @argument(1); 192 193 var groups = new @Map; 194 for (var i = 0; i < length; ++i) { 195 var value = array[i]; 196 var key = callback.@call(thisArg, value, i, array); 197 var group = groups.@get(key); 198 if (!group) { 199 group = []; 200 groups.@set(key, group); 201 } 202 @putByValDirect(group, group.length, value); 203 } 204 return groups; 205 } 206 159 207 function map(callback /*, thisArg */) 160 208 { -
trunk/Source/JavaScriptCore/builtins/BuiltinNames.h
r286069 r287136 71 71 macro(defaultPromiseThen) \ 72 72 macro(Set) \ 73 macro(Map) \ 73 74 macro(throwTypeErrorFunction) \ 74 75 macro(typedArrayLength) \
Note:
See TracChangeset
for help on using the changeset viewer.