This line will crash node:
Context2d.prototype.filter
Perhaps worse, so do this:
Object.getOwnPropertyDescriptor(Context2d.prototype, "filter")
I think this is because GetFilter doesn't have a HasInstance guard. I think it should do something along the lines of
if (!HasInstace(this)) return default_value
(as opposed to throwing, since then getOwnPropertyDesctipor would throw. This would match Array.prototype.length for example which is 0).