|
44 | 44 | - [ ] String literal |
45 | 45 | - [ ] Is applicable to enumerations (also check for union) |
46 | 46 | - [ ] XML expression |
47 | | - - [ ] XML tags applied as WhackDS nodes: The prefix, if any, will ignore anything that is not a namespace or package import (even if it is `*`; in that case, if the user needs, they can use interpolation for specifying the tag's type). |
| 47 | + - [ ] XML literals applied as `XML`/`XMLList` shall resolve namespace prefixes to lexical ShockScript names. (`namespace` definitions may be used as prefixes as well (definition name = URI); with implicit prefix.) |
48 | 48 | - [ ] Null literal |
49 | 49 | - [ ] Array literal |
50 | 50 | - [ ] Is applicable to flag enumerations |
|
63 | 63 | - [ ] Call operator |
64 | 64 | - [ ] Base is passed *followedByCall=true* |
65 | 65 | - [ ] Watch for static `sx_proxy::call` when calling classes (supports multiple signatures too) |
| 66 | + - [ ] Take in consideration compatible overrides and overloads (also important for the `[object Object].equals()` method) |
66 | 67 | - [ ] `XML` and `XMLList` being called statically shall still pass themselves as the context type to the first call argument, even if they define `sx_proxy::call()`. |
67 | 68 | - [ ] `v as T` operator |
68 | 69 | - [ ] Passes context type `T` to `v` |
|
114 | 115 | - [ ] required `next():{ done: Boolean, value?: T }` |
115 | 116 | - [ ] `length():int` |
116 | 117 | - [ ] `skip(count:int):void` |
117 | | - - [ ] `sx_proxy::filter(...)` |
| 118 | + - [ ] `sx_proxy::filter(...)` (returns another iterator) |
118 | 119 | - [ ] Other functional methods |
119 | 120 | - [ ] Iterable.\<K, V> (interface) requires keys() and values() |
120 | 121 | - [ ] Generator.\<T> |
|
125 | 126 | - [ ] Reflect::class() |
126 | 127 | - [ ] clone() returns `this` |
127 | 128 | - Default implementation clones most objects fine (records, tuples, arrays, maps and so on), but classes with a required constructor will require a custom clone() override. |
128 | | - - [ ] `equals(obj:*):Boolean` |
| 129 | + - [ ] `equals(obj:this):Boolean` |
129 | 130 | - May be used in addition to reference equality (==, ===). Default object behavior is ===. |
| 131 | + - Incompatible operands should use the most compatible base `.equals()` method (call operator specific behavior) |
130 | 132 | - Floating points should have an `equals()` implementation done like in React.js's memoization/state new value comparison. |
131 | 133 | - [ ] `Map.equals()` should look structurally using inner `.equals()` |
132 | 134 | - [ ] Array too |
|
0 commit comments