blob: c08572f5315b32510db112e86aa4aeb90da06064 [file]
/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
Kotlin.getCallableRef = function(name, f) {
f.callableName = name;
return f;
};
Kotlin.getPropertyCallableRef = function(name, paramCount, getter, setter) {
getter.get = getter;
getter.set = setter;
getter.callableName = name;
return getPropertyRefClass(getter, setter, propertyRefClassMetadataCache[paramCount]);
};
function getPropertyRefClass(obj, setter, cache) {
obj.$metadata$ = getPropertyRefMetadata(typeof setter === "function" ? cache.mutable : cache.immutable);
obj.constructor = obj;
return obj;
}
var propertyRefClassMetadataCache = [
{
mutable: { value: null, implementedInterface: function () {
return Kotlin.kotlin.reflect.KMutableProperty0 }
},
immutable: { value: null, implementedInterface: function () {
return Kotlin.kotlin.reflect.KProperty0 }
}
},
{
mutable: { value: null, implementedInterface: function () {
return Kotlin.kotlin.reflect.KMutableProperty1 }
},
immutable: { value: null, implementedInterface: function () {
return Kotlin.kotlin.reflect.KProperty1 }
}
}
];
function getPropertyRefMetadata(cache) {
if (cache.value === null) {
cache.value = {
interfaces: [cache.implementedInterface()],
baseClass: null,
functions: {},
properties: {},
types: {},
staticMembers: {}
};
}
return cache.value;
}