Allen Wirfs-Brock (2013-12-03T20:52:06.000Z)
domenic at domenicdenicola.com (2013-12-10T01:33:43.167Z)
Nope. There is absolutely no dependency upon Map in the code I wrote. Each of the methods I showed have a dependency upon finding a like-named property up the prototype chain of the object it gets bound to (via toMethod) and implicitly assumes such properties correctly implement appropriate map-like behavior. They do not depend upon finding Map.prototype on that prototype chain or upon finding the built-in implementation of the corresponding methods. These assumptions are no more risky then the assumptions I would have been making if instead of a super call I had coded: ```js return Map.prototype.has.call(this, key); ``` When I code that I assume that, at runtime, a 'has' property will be found on Map.prototype, that the value of that property is a function, and that the function implements that contract that I'm expecting. Saying super(key) or even super.has(key) makes the same assumptions but is not tied to any one particular inheritance hierarchy.