132 lines
4.3 KiB
Diff
132 lines
4.3 KiB
Diff
--- src/org/mozilla/javascript/FieldAndMethods.java
|
|
+++ src/org/mozilla/javascript/FieldAndMethods.java
|
|
@@ -0,0 +1,84 @@
|
|
+/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
+ *
|
|
+ * ***** BEGIN LICENSE BLOCK *****
|
|
+ * Version: MPL 1.1/GPL 2.0
|
|
+ *
|
|
+ * The contents of this file are subject to the Mozilla Public License Version
|
|
+ * 1.1 (the "License"); you may not use this file except in compliance with
|
|
+ * the License. You may obtain a copy of the License at
|
|
+ * http://www.mozilla.org/MPL/
|
|
+ *
|
|
+ * Software distributed under the License is distributed on an "AS IS" basis,
|
|
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
+ * for the specific language governing rights and limitations under the
|
|
+ * License.
|
|
+ *
|
|
+ * The Original Code is Rhino code, released
|
|
+ * May 6, 1999.
|
|
+ *
|
|
+ * The Initial Developer of the Original Code is
|
|
+ * Netscape Communications Corporation.
|
|
+ * Portions created by the Initial Developer are Copyright (C) 1997-2000
|
|
+ * the Initial Developer. All Rights Reserved.
|
|
+ *
|
|
+ * Contributor(s):
|
|
+ * Norris Boyd
|
|
+ * Cameron McCormack
|
|
+ * Frank Mitchell
|
|
+ * Mike Shaver
|
|
+ * Kurt Westerfeld
|
|
+ *
|
|
+ * Alternatively, the contents of this file may be used under the terms of
|
|
+ * the GNU General Public License Version 2 or later (the "GPL"), in which
|
|
+ * case the provisions of the GPL are applicable instead of those above. If
|
|
+ * you wish to allow use of your version of this file only under the terms of
|
|
+ * the GPL and not to allow others to use your version of this file under the
|
|
+ * MPL, indicate your decision by deleting the provisions above and replacing
|
|
+ * them with the notice and other provisions required by the GPL. If you do
|
|
+ * not delete the provisions above, a recipient may use your version of this
|
|
+ * file under either the MPL or the GPL.
|
|
+ *
|
|
+ * ***** END LICENSE BLOCK ***** */
|
|
+
|
|
+package org.mozilla.javascript;
|
|
+
|
|
+import java.lang.reflect.*;
|
|
+import java.util.*;
|
|
+
|
|
+public class FieldAndMethods extends NativeJavaMethod
|
|
+{
|
|
+ static final long serialVersionUID = -9222428244284796755L;
|
|
+
|
|
+ FieldAndMethods(Scriptable scope, MemberBox[] methods, Field field)
|
|
+ {
|
|
+ super(methods);
|
|
+ this.field = field;
|
|
+ setParentScope(scope);
|
|
+ setPrototype(ScriptableObject.getFunctionPrototype(scope));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Object getDefaultValue(Class<?> hint)
|
|
+ {
|
|
+ if (hint == ScriptRuntime.FunctionClass)
|
|
+ return this;
|
|
+ Object rval;
|
|
+ Class<?> type;
|
|
+ try {
|
|
+ rval = field.get(javaObject);
|
|
+ type = field.getType();
|
|
+ } catch (IllegalAccessException accEx) {
|
|
+ throw Context.reportRuntimeError1(
|
|
+ "msg.java.internal.private", field.getName());
|
|
+ }
|
|
+ Context cx = Context.getContext();
|
|
+ rval = cx.getWrapFactory().wrap(cx, this, rval, type);
|
|
+ if (rval instanceof Scriptable) {
|
|
+ rval = ((Scriptable) rval).getDefaultValue(hint);
|
|
+ }
|
|
+ return rval;
|
|
+ }
|
|
+
|
|
+ Field field;
|
|
+ Object javaObject;
|
|
+}
|
|
--- src/org/mozilla/javascript/JavaMembers.java
|
|
+++ src/org/mozilla/javascript/JavaMembers.java
|
|
@@ -892,41 +892,3 @@
|
|
MemberBox setter;
|
|
NativeJavaMethod setters;
|
|
}
|
|
-
|
|
-class FieldAndMethods extends NativeJavaMethod
|
|
-{
|
|
- static final long serialVersionUID = -9222428244284796755L;
|
|
-
|
|
- FieldAndMethods(Scriptable scope, MemberBox[] methods, Field field)
|
|
- {
|
|
- super(methods);
|
|
- this.field = field;
|
|
- setParentScope(scope);
|
|
- setPrototype(ScriptableObject.getFunctionPrototype(scope));
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object getDefaultValue(Class<?> hint)
|
|
- {
|
|
- if (hint == ScriptRuntime.FunctionClass)
|
|
- return this;
|
|
- Object rval;
|
|
- Class<?> type;
|
|
- try {
|
|
- rval = field.get(javaObject);
|
|
- type = field.getType();
|
|
- } catch (IllegalAccessException accEx) {
|
|
- throw Context.reportRuntimeError1(
|
|
- "msg.java.internal.private", field.getName());
|
|
- }
|
|
- Context cx = Context.getContext();
|
|
- rval = cx.getWrapFactory().wrap(cx, this, rval, type);
|
|
- if (rval instanceof Scriptable) {
|
|
- rval = ((Scriptable) rval).getDefaultValue(hint);
|
|
- }
|
|
- return rval;
|
|
- }
|
|
-
|
|
- Field field;
|
|
- Object javaObject;
|
|
-}
|