Repository navigation
Commit d7d5401
fix(core): don't use plain objects as maps for jsaction data
The parsed jsaction action map, the parser cache keyed by the raw jsaction attribute value, and the fallback in getDefaulted were all plain {} objects. Looking up a key that was never explicitly set but happens to match an inherited Object.prototype member (toString, constructor, hasOwnProperty, ...) resolves to that inherited value instead of undefined, and callers only check `!== undefined` to decide whether there's a real action or cache entry.
Use Object.create(null) instead, which has no prototype to accidentally collide with.
(cherry picked from commit 8d8859c)1 parent fc1a44a commit d7d5401
2 files changed
Lines changed: 7 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
258 | 259 | | |
259 | 260 | | |
260 | 261 | | |
261 | | - | |
| 262 | + | |
262 | 263 | | |
263 | 264 | | |
264 | 265 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
15 | 17 | | |
16 | 18 | | |
17 | 19 | | |
| |||
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
28 | | - | |
| 30 | + | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| |||
0 commit comments