Commit 7e5cbb5
committed
Made indexed assignment throw on read-only indexable collections
Indexed assignment (obj[i] = x) silently no-op'd for any non-NSMutableArray target, letting V8 store an unreachable JS property on the wrapper. Now that non-NSArray collections are readable by index, throw a TypeError for indexable read-only targets (responds to count + objectAtIndex:, not NSMutableArray) so a dropped write surfaces instead of leaking an orphaned expando. NSArray keeps its silent no-op for backward compatibility.1 parent 530c40c commit 7e5cbb5
2 files changed
Lines changed: 35 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
961 | 961 | | |
962 | 962 | | |
963 | 963 | | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
964 | 974 | | |
965 | 975 | | |
966 | 976 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
39 | 64 | | |
40 | 65 | | |
41 | 66 | | |
| |||
0 commit comments