Add arity checks to mjsunit's assertEquals and assertSame
authormstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 10 Jun 2014 15:19:27 +0000 (15:19 +0000)
committermstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 10 Jun 2014 15:19:27 +0000 (15:19 +0000)
BUG=None
LOG=n
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/309173003

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

test/mjsunit/mjsunit.js

index 121b7e0..bcd4913 100644 (file)
@@ -231,8 +231,16 @@ var assertUnoptimized;
     return deepObjectEquals(a, b);
   }
 
+  function checkArity(args, arity, name) {
+    if (args.length < arity) {
+      fail(PrettyPrint(arity), args.length,
+           name + " requires " + arity + " or more arguments");
+    }
+  }
 
   assertSame = function assertSame(expected, found, name_opt) {
+    checkArity(arguments, 2, "assertSame");
+
     // TODO(mstarzinger): We should think about using Harmony's egal operator
     // or the function equivalent Object.is() here.
     if (found === expected) {
@@ -245,6 +253,8 @@ var assertUnoptimized;
 
 
   assertEquals = function assertEquals(expected, found, name_opt) {
+    checkArity(arguments, 2, "assertEquals");
+
     if (!deepEquals(found, expected)) {
       fail(PrettyPrint(expected), found, name_opt);
     }