[prev in list] [next in list] [prev in thread] [next in thread]
List: rpm-cvs
Subject: [CVS] RPM: rpm/js/tscripts/ Uuid.js rpm/js/ uuid-js.c
From: "Jeff Johnson" <jbj () rpm5 ! org>
Date: 2009-04-27 21:29:01
Message-ID: 20090427212901.D60FFFE68 () rpm5 ! org
[Download RAW message or body]
RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 27-Apr-2009 23:29:01
Branch: HEAD Handle: 2009042721290100
Modified files:
rpm/js uuid-js.c
rpm/js/tscripts Uuid.js
Log:
- js: Uuid: handle JSCLASS_NEW_RESOLVE, always succeed in getprop.
Summary:
Revision Changes Path
1.4 +9 -1 rpm/js/tscripts/Uuid.js
1.8 +19 -2 rpm/js/uuid-js.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/js/tscripts/Uuid.js
============================================================================
$ cvs diff -u -r1.3 -r1.4 Uuid.js
--- rpm/js/tscripts/Uuid.js 27 Apr 2009 11:37:55 -0000 1.3
+++ rpm/js/tscripts/Uuid.js 27 Apr 2009 21:29:01 -0000 1.4
@@ -1,9 +1,17 @@
if (loglvl) print("--> Uuid.js");
-var uuid = new Uuid();
+var ns = "ns:URL";
+var abc = "http://rpm5.org/abc";
+
+var uuid = new Uuid(ns);
ack("typeof uuid;", "object");
ack("uuid instanceof Uuid;", true);
ack("uuid.debug = 1;", 1);
ack("uuid.debug = 0;", 0);
+ack("uuid.describe(uuid.generate(1))", undefined);
+ack("uuid.describe(uuid.generate(3, ns, abc));",undefined);
+ack("uuid.describe(uuid.generate(4))", undefined);
+ack("uuid.describe(uuid.generate(5, ns, abc));",undefined);
+
if (loglvl) print("<-- Uuid.js");
@@ .
patch -p0 <<'@@ .'
Index: rpm/js/uuid-js.c
============================================================================
$ cvs diff -u -r1.7 -r1.8 uuid-js.c
--- rpm/js/uuid-js.c 27 Apr 2009 01:01:14 -0000 1.7
+++ rpm/js/uuid-js.c 27 Apr 2009 21:29:01 -0000 1.8
@@ -20,6 +20,8 @@
uuid_t * ns;
} * JSUuid;
+/* --- helpers */
+
/* --- Object methods */
static JSBool
@@ -187,6 +189,7 @@
if (!ok) {
_PROP_DEBUG_EXIT(_debug);
}
+ok = JS_TRUE; /* XXX avoid immediate interp exit by always succeeding. */
return ok;
}
@@ -217,8 +220,22 @@
JSObject **objp)
{
void * ptr = JS_GetInstancePrivate(cx, obj, &uuidClass, NULL);
+ JSBool ok = JS_FALSE;
+
_RESOLVE_DEBUG_ENTRY(_debug);
- return JS_TRUE;
+
+ if ((flags & JSRESOLVE_ASSIGNING)
+ || (ptr == NULL)) { /* don't resolve to parent prototypes objects. */
+ *objp = NULL;
+ ok = JS_TRUE;
+ goto exit;
+ }
+
+ *objp = obj; /* XXX always resolve in this object. */
+
+ ok = JS_TRUE;
+exit;
+ return ok;
}
static JSBool
@@ -304,7 +321,7 @@
/* --- Class initialization */
JSClass uuidClass = {
- "Uuid", JSCLASS_NEW_RESOLVE | JSCLASS_NEW_ENUMERATE | JSCLASS_HAS_PRIVATE | \
JSCLASS_HAS_CACHED_PROTO(JSProto_Object), + "Uuid", JSCLASS_NEW_RESOLVE | \
JSCLASS_NEW_ENUMERATE | JSCLASS_HAS_PRIVATE, uuid_addprop, uuid_delprop, \
uuid_getprop, uuid_setprop, (JSEnumerateOp)uuid_enumerate, \
(JSResolveOp)uuid_resolve, uuid_convert, uuid_dtor,
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository rpm-cvs@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic