projects
/
org.ibex.core.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d7e7948
)
2002/05/16 04:15:12
author
megacz
<megacz@xwt.org>
Fri, 30 Jan 2004 06:47:14 +0000
(06:47 +0000)
committer
megacz
<megacz@xwt.org>
Fri, 30 Jan 2004 06:47:14 +0000
(06:47 +0000)
darcs-hash:
20040130064714
-2ba56-
72d8b3e451f5607435e9cc413c9a848718d2e6f7
.gz
CHANGES
patch
|
blob
|
history
src/org/xwt/util/JSObject.java
patch
|
blob
|
history
diff --git
a/CHANGES
b/CHANGES
index
d6cf21c
..
71f85da
100644
(file)
--- a/
CHANGES
+++ b/
CHANGES
@@
-137,5
+137,6
@@
15-May megacz XWT.java: added xwt.screen{Width,Height}
15-May megacz XWT.java: added xwt.screen{Width,Height}
-
+15-May megacz JSObject.java: added extra logic to discriminate between
+ public and private puts.
diff --git
a/src/org/xwt/util/JSObject.java
b/src/org/xwt/util/JSObject.java
index
4692aff
..
84c7737
100644
(file)
--- a/
src/org/xwt/util/JSObject.java
+++ b/
src/org/xwt/util/JSObject.java
@@
-111,11
+111,20
@@
public class JSObject implements Scriptable {
properties.put(name, null, value);
}
properties.put(name, null, value);
}
- /** if a put is made directly to us (rather than cascading up to Top), it must be a var-declaration */
+ /**
+ * if a put is made directly to us (rather than cascading up to
+ * Top), by a script for whom we are in the ultimate parent
+ * scope, it must be a var-declaration
+ */
public void put(String name, Scriptable start, Object value) {
if (sealed) return;
if (name == null || name.equals("")) return;
public void put(String name, Scriptable start, Object value) {
if (sealed) return;
if (name == null || name.equals("")) return;
- putPrivately(name, value, getCurrentFunctionSourceName());
+ for(Scriptable cur = Context.enter().currentFunction; cur != null; cur = cur.getParentScope())
+ if (cur == this) {
+ putPrivately(name, value, getCurrentFunctionSourceName());
+ return;
+ }
+ putGlobally(name, start, value);
}
/** if privateVars is enabled, we always return false, to see if the put propagates up to Top */
}
/** if privateVars is enabled, we always return false, to see if the put propagates up to Top */
@@
-171,9
+180,9
@@
public class JSObject implements Scriptable {
public void setPrototype(Scriptable p) { }
public void delete(int i) { }
public Object getDefaultValue(Class hint) { return "Top"; }
public void setPrototype(Scriptable p) { }
public void delete(int i) { }
public Object getDefaultValue(Class hint) { return "Top"; }
- public void put(int i, Scriptable start, Object value) { }
- public Object get(int i, Scriptable start) { return null; }
- public boolean has(int i, Scriptable start) { return false; }
+ public void put(int i, Scriptable start, Object value) { put(String.valueOf(i), start, value); }
+ public Object get(int i, Scriptable start) { return get(String.valueOf(i), start); }
+ public boolean has(int i, Scriptable start) { return has(String.valueOf(i), start); }
public Object[] getIds() { return new Object[] { }; }
}
public Object[] getIds() { return new Object[] { }; }
}
@@
-192,9
+201,9
@@
public class JSObject implements Scriptable {
public void setPrototype(Scriptable p) { }
public String getClassName() { return this.getClass().getName(); }
public Object getDefaultValue(Class hint) { return toString(); }
public void setPrototype(Scriptable p) { }
public String getClassName() { return this.getClass().getName(); }
public Object getDefaultValue(Class hint) { return toString(); }
- public void put(int i, Scriptable start, Object value) { }
- public Object get(int i, Scriptable start) { return null; }
- public boolean has(int i, Scriptable start) { return false; }
+ public void put(int i, Scriptable start, Object value) { put(String.valueOf(i), start, value); }
+ public Object get(int i, Scriptable start) { return get(String.valueOf(i), start); }
+ public boolean has(int i, Scriptable start) { return has(String.valueOf(i), start); }
}
}