Skip to content

Commit 54e9d47

Browse files
hansonrhansonr
authored andcommitted
implements order for interface with $defaults$
interprets Java spec "one of" interfaces with competing default method as "first listed after "implements"
1 parent 8499222 commit 54e9d47

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

sources/net.sf.j2s.java.core/srcjs/js/j2sClazz.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
// Google closure compiler cannot handle Clazz.new or Clazz.super
99

10+
// BH 2021.02.12 implements better(?) interface defaults resolution -- in order of presentation
1011
// BH 2020.12.31 3.3.1-v1 full 64-bit long support; BigDecimal, BigInteger fully 64-bit
1112

1213
// BH 2020.12.19 3.2.10-v1 preliminary work aiming to back long with [r,m,s].
@@ -1699,14 +1700,14 @@ var copyStatics = function(clazzFrom, clazzThis, isInterface) {
16991700
}
17001701
}
17011702
if (isInterface) {
1703+
clazzThis.$defaults$ && clazzThis.$defaults$(clazzThis);
17021704
for (var o in clazzFrom.prototype) {
17031705
if (clazzThis.prototype[o] == undefined && !excludeSuper(o)) {
17041706
clazzThis.prototype[o] = clazzFrom.prototype[o];
17051707
}
17061708
}
17071709
if (clazzFrom.$defaults$) {
17081710
__allowOverwriteClass = false;
1709-
clazzThis.$defaults$ && clazzThis.$defaults$(clazzThis);
17101711
clazzFrom.$defaults$(clazzThis);
17111712
__allowOverwriteClass = true;
17121713
}
@@ -2063,7 +2064,7 @@ var setSuperclass = function(clazzThis, clazzSuper){
20632064
*/
20642065
var addInterface = function (clazzThis, interfacez) {
20652066
if (interfacez instanceof Array) {
2066-
for (var i = interfacez.length; --i >= 0;) {
2067+
for (var i = 0, n = interfacez.length; i < n; i++) {
20672068
var iface = interfacez[i];
20682069
if (iface instanceof Array) {
20692070
var cl;

0 commit comments

Comments
 (0)