From 755a0f560657dbdc83256f141c6856a9849988d7 Mon Sep 17 00:00:00 2001 From: hns Date: Wed, 26 Jan 2005 13:28:36 +0000 Subject: [PATCH] Always convert java.util.Dates to JavaScript Date objects in Wrap Factory. --- src/helma/scripting/rhino/RhinoCore.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/helma/scripting/rhino/RhinoCore.java b/src/helma/scripting/rhino/RhinoCore.java index ec7d1879..d916636f 100644 --- a/src/helma/scripting/rhino/RhinoCore.java +++ b/src/helma/scripting/rhino/RhinoCore.java @@ -997,15 +997,27 @@ public final class RhinoCore { class WrapMaker extends WrapFactory { public Object wrap(Context cx, Scriptable scope, Object obj, Class staticType) { - // System.err.println ("Wrapping: "+obj); + // Wrap Nodes if (obj instanceof INode) { return getNodeWrapper((INode) obj); } + // Masquerade SystemMap and WrappedMap as native JavaScript objects if (obj instanceof SystemMap || obj instanceof WrappedMap) { return new MapWrapper((Map) obj, RhinoCore.this); } + // Convert java.util.Date objects to JavaScript Dates + if (obj instanceof Date) { + Object[] args = { new Long(((Date) obj).getTime()) }; + try { + return cx.newObject(global, "Date", args); + } catch (JavaScriptException nafx) { + return obj; + } + } + + // Wrap scripted Java objects if (obj != null && app.getPrototypeName(obj) != null) { return getElementWrapper(obj); }