resourceloader: Enforce strict string keys in mw.Map
authorTimo Tijhof <krinklemail@gmail.com>
Sat, 4 Mar 2017 00:46:24 +0000 (16:46 -0800)
committerKrinkle <krinklemail@gmail.com>
Mon, 6 Mar 2017 21:12:19 +0000 (21:12 +0000)
commite696524c0082f4cf45efb92238206cb363bda56d
tree77890d99c19f16db5258b328ee64483e412c2a29
parent9838bb9d19999bd814a5e162e1004b57ff955729
resourceloader: Enforce strict string keys in mw.Map

* No longer perform any key-to-string casting in get(), set(),
  or exists().
  - Setting a non-string key is ignored.
  - Looking for a non-string key that looks like a string key
    that exists will not find it.

Clean up:

* Remove needless `selection=slice.call(selection)` in mw.Map#get
  Follows-up 77d71f743 (r75486). Not sure why this was here.

* Inline logic for the multi-key retrieval instead of recursing.
  This also removes undocumented behaviour where a nested array
  could be passed to mw.config.get(), e.g. mw.config.get([['debug']]),
  which would produces a nested object.

Change-Id: I84506930919e59ce16d96d6d623db5aae5f273e1
resources/src/mediawiki/mediawiki.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js