JS: add support of JsQualifier annotation. See KT-15905

This commit is contained in:
Alexey Andreev
2017-01-24 14:43:21 +03:00
parent 6624736ccf
commit cc67f6c9f7
13 changed files with 165 additions and 10 deletions
+16
View File
@@ -0,0 +1,16 @@
var pkg = function() {
function C() {
}
C.prototype.o = function() {
return "O";
};
function D() {
}
D.prototype.k = function() {
return "K";
};
C.D = D;
return {
C: C
};
}();
+15
View File
@@ -0,0 +1,15 @@
// MODULE: lib
// FILE: lib.kt
@file:JsQualifier("pkg")
external class C {
fun o(): String
class D {
fun k(): String
}
}
// MODULE: main(lib)
// FILE: main.kt
fun box() = C().o() + C.D().k()
+8
View File
@@ -0,0 +1,8 @@
var a = {
b: {
c: function() {
return "O";
},
d: "K"
}
};
+15
View File
@@ -0,0 +1,15 @@
// MODULE: lib
// FILE: lib.kt
@file:JsQualifier("a.b")
package ab
external fun c(): String
external val d: String
// MODULE: main(lib)
// FILE: main.kt
package main
fun box() = ab.c() + ab.d
@@ -0,0 +1,5 @@
var foo = {
bar: function() {
return "OK";
}
};
@@ -0,0 +1,13 @@
// MODULE: lib
// FILE: lib.kt
// MODULE_KIND: UMD
// NO_JS_MODULE_SYSTEM
@file:JsQualifier("foo")
external fun bar(): String
// MODULE: main(lib)
// FILE: main.kt
// MODULE_KIND: UMD
// NO_JS_MODULE_SYSTEM
fun box() = bar()
@@ -0,0 +1,9 @@
define("libjs", ["exports"], function(exports) {
exports.a = {
b: {
c: function () {
return "OK";
}
}
};
});
+15
View File
@@ -0,0 +1,15 @@
// MODULE: lib
// FILE: lib.kt
// MODULE_KIND: AMD
@file:JsQualifier("a.b")
@file:JsModule("libjs")
package ab
external fun c(): String
// MODULE: main(lib)
// FILE: main.kt
// MODULE_KIND: AMD
package main
fun box() = ab.c()