JS backend: fix class object access A.object$() -> A.object

This commit is contained in:
Erokhin Stanislav
2013-09-19 20:57:08 +04:00
parent 9654bd9bc8
commit bdb338a271
2 changed files with 6 additions and 8 deletions
@@ -49,7 +49,7 @@ public final class Namer {
private static final String RECEIVER_PARAMETER_NAME = "$receiver";
private static final String CLASSES_OBJECT_NAME = "_c";
private static final String THROW_NPE_FUN_NAME = "throwNPE";
private static final String CLASS_OBJECT_GETTER = "object$";
private static final String CLASS_OBJECT_GETTER = "object";
private static final String CLASS_OBJECT_INITIALIZER = "object_initializer$";
@@ -115,7 +115,7 @@ public final class Namer {
@NotNull
public static JsExpression getClassObjectAccessor(@NotNull JsExpression referenceToClass) {
return new JsInvocation(new JsNameRef(CLASS_OBJECT_GETTER, referenceToClass));
return new JsNameRef(CLASS_OBJECT_GETTER, referenceToClass);
}
@NotNull
@@ -180,10 +180,9 @@ var Kotlin = {};
}
function class_object() {
if (typeof this.$object$ === "undefined") {
this.$object$ = this.object_initializer$();
}
return this.$object$;
var object = this.object_initializer$();
Object.defineProperty(this, "object", {value: object});
return object;
}
Kotlin.createClass = function (bases, constructor, properties, staticProperties) {
@@ -210,8 +209,7 @@ var Kotlin = {};
constructor.$metadata$ = metadata;
constructor.prototype = prototypeObj;
//Object.defineProperty(constructor, "$object", {get: class_object}); // TODO: check & fix call $object()
constructor.object$ = class_object;
Object.defineProperty(constructor, "object", {get: class_object, configurable: true});
return constructor;
};