From 55b16959717084884fd4a0cbae6d19e3786c20c7 Mon Sep 17 00:00:00 2001
From: Mike Pall <mike>
Date: Tue, 8 Dec 2009 19:46:35 +0100
Subject: RELEASE LuaJIT-2.0.0-beta1

---
 src/lj_obj.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 src/lj_obj.c

(limited to 'src/lj_obj.c')

diff --git a/src/lj_obj.c b/src/lj_obj.c
new file mode 100644
index 00000000..d26a6b38
--- /dev/null
+++ b/src/lj_obj.c
@@ -0,0 +1,41 @@
+/*
+** Miscellaneous object handling.
+** Copyright (C) 2005-2009 Mike Pall. See Copyright Notice in luajit.h
+*/
+
+#define lj_obj_c
+#define LUA_CORE
+
+#include "lj_obj.h"
+
+/* Object type names. */
+LJ_DATADEF const char *const lj_obj_typename[] = {  /* ORDER LUA_T */
+  "no value", "nil", "boolean", "userdata", "number", "string",
+  "table", "function", "userdata", "thread", "proto", "upval"
+};
+
+LJ_DATADEF const char *const lj_obj_itypename[] = {  /* ORDER LJ_T */
+  "nil", "boolean", "boolean", "userdata", "string", "upval", "thread",
+  "proto", "function", "deadkey", "table", "userdata", "number"
+};
+
+/* Compare two objects without calling metamethods. */
+int lj_obj_equal(cTValue *o1, cTValue *o2)
+{
+  if (itype(o1) == itype(o2)) {
+    if (tvispri(o1))
+      return 1;
+    if (!tvisnum(o1)) {
+#if LJ_64
+      if (tvislightud(o1))
+	return o1->u64 == o2->u64;
+      else
+#endif
+	return gcrefeq(o1->gcr, o2->gcr);
+    }
+  } else if (!tvisnum(o1) || !tvisnum(o2)) {
+    return 0;
+  }
+  return numV(o1) == numV(o2);
+}
+
-- 
cgit v1.2.3-55-g6feb