bindings: Allow `any' dictionary members to be null.

We had been using the same checks for both object and any Web IDL types to
determine if they were present, namely

    !(member.IsEmpty() || member.IsNull() || member.IsUndefined())

However, both `null' and `undefined' are valid values for the any type, and
they should be considered distinct.

Add a separate check for any types without the "member.IsNull()" part of the
above one, so that one can pass `null' to an any member and get it back
instead of `undefined'.

Bug: 803448
Change-Id: I90dce8f0fc6c0f4d4764d724501a58cf26e92526
Reviewed-on: https://chromium-review.googlesource.com/895304
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#533601}
diff --git a/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html b/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html
index 109b10e..17cc35c 100644
--- a/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html
+++ b/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-event-constructor.html
@@ -33,7 +33,7 @@
   // reason is passed.
   var r = new Error();
   assert_equals(new PromiseRejectionEvent('eventType', { promise: p, reason: r }).reason, r);
-
+  assert_equals(new PromiseRejectionEvent('eventType', { promise: p, reason: null }).reason, null);
 
   // All initializers are passed.
   assert_equals(new PromiseRejectionEvent('eventType', { bubbles: true, cancelable: true, promise: p, reason: r }).bubbles, true);