diff --git a/jslib/jslib.iml b/jslib/jslib.iml index 26a958a9c8a..d5c07432750 100644 --- a/jslib/jslib.iml +++ b/jslib/jslib.iml @@ -5,7 +5,7 @@ - + diff --git a/jslib/src/core/Dummy.java b/jslib/src/core/Dummy.java new file mode 100644 index 00000000000..1d0a7e23165 --- /dev/null +++ b/jslib/src/core/Dummy.java @@ -0,0 +1,7 @@ +package core; + +/** + * @author Pavel Talanov + */ +public final class Dummy { +} diff --git a/jslib/src/core/annotations.kt b/jslib/src/core/annotations.kt index ba71aa4c983..1d553ed5011 100644 --- a/jslib/src/core/annotations.kt +++ b/jslib/src/core/annotations.kt @@ -1,4 +1,4 @@ -package js.annotations; +package js; -annotation class native(name : String = "") +annotation class native(name : String = "") {} annotation class library(name : String = "") {} \ No newline at end of file diff --git a/jslib/src/core/core.kt b/jslib/src/core/core.kt index 15c6847ac40..bb70b9a6cf6 100644 --- a/jslib/src/core/core.kt +++ b/jslib/src/core/core.kt @@ -1,8 +1,7 @@ package js; -import js.annotations.library -import js.annotations.library -import js.annotations.native +import js.library +import js.native import java.util.*; library("println") diff --git a/jslib/src/core/javalang.kt b/jslib/src/core/javalang.kt index 43939cddd3f..1cb140116f0 100644 --- a/jslib/src/core/javalang.kt +++ b/jslib/src/core/javalang.kt @@ -1,7 +1,7 @@ package java.lang import java.util.Iterator; -import js.annotations.library +import js.library library trait Iterable { diff --git a/jslib/src/core/javautil.kt b/jslib/src/core/javautil.kt index 0a511ca7a15..69fe9b2bd85 100644 --- a/jslib/src/core/javautil.kt +++ b/jslib/src/core/javautil.kt @@ -1,6 +1,6 @@ package java.util -import js.annotations.*; +import js.*; library("collectionsMax") diff --git a/jslib/src/core/json.kt b/jslib/src/core/json.kt index 6ba49b4ed00..a7a40190118 100644 --- a/jslib/src/core/json.kt +++ b/jslib/src/core/json.kt @@ -1,7 +1,7 @@ package js import java.util.*; -import js.annotations.library +import js.library class Json() { diff --git a/jslib/src/core/math.kt b/jslib/src/core/math.kt index c4501248fdc..5d4864a58ab 100644 --- a/jslib/src/core/math.kt +++ b/jslib/src/core/math.kt @@ -1,6 +1,6 @@ package js; -import js.annotations.native +import js.native native val Math = object { diff --git a/jslib/src/html5/core.kt b/jslib/src/html5/core.kt index c80fc13f363..6e14f794a4e 100644 --- a/jslib/src/html5/core.kt +++ b/jslib/src/html5/core.kt @@ -1,6 +1,6 @@ package html5 -import js.annotations.native +import js.native import js.DomElement native diff --git a/jslib/src/jquery/common.kt b/jslib/src/jquery/common.kt index 020f7a7fc3f..159b7bfa296 100644 --- a/jslib/src/jquery/common.kt +++ b/jslib/src/jquery/common.kt @@ -1,6 +1,6 @@ package jquery; -import js.annotations.*; +import js.*; import js.DomElement native diff --git a/jslib/src/raphael/raphael.kt b/jslib/src/raphael/raphael.kt index 52e0e08753b..e30b63b15c1 100644 --- a/jslib/src/raphael/raphael.kt +++ b/jslib/src/raphael/raphael.kt @@ -1,6 +1,6 @@ package raphael -import js.annotations.*; +import js.*; import js.*; native diff --git a/translator/src/org/jetbrains/k2js/config/Config.java b/translator/src/org/jetbrains/k2js/config/Config.java index ae39f2dd735..26be3bdbfe3 100644 --- a/translator/src/org/jetbrains/k2js/config/Config.java +++ b/translator/src/org/jetbrains/k2js/config/Config.java @@ -3,12 +3,13 @@ package org.jetbrains.k2js.config; import com.google.common.base.Charsets; import com.google.common.io.Files; import com.intellij.openapi.project.Project; +import core.Dummy; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.k2js.utils.JetFileUtils; -import java.io.File; +import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -26,15 +27,15 @@ public abstract class Config { //TODO: provide some generic way to get the files of the project @NotNull private static final List LIB_FILE_NAMES = Arrays.asList( - PATH_TO_JS_LIB_SRC + "\\core\\annotations.kt", - PATH_TO_JS_LIB_SRC + "\\jquery\\common.kt", - PATH_TO_JS_LIB_SRC + "\\core\\javautil.kt", - PATH_TO_JS_LIB_SRC + "\\core\\javalang.kt", - PATH_TO_JS_LIB_SRC + "\\core\\core.kt", - PATH_TO_JS_LIB_SRC + "\\core\\math.kt", - PATH_TO_JS_LIB_SRC + "\\core\\json.kt", - PATH_TO_JS_LIB_SRC + "\\raphael\\raphael.kt", - PATH_TO_JS_LIB_SRC + "\\html5\\core.kt" + "/core/annotations.kt", + "/jquery/common.kt", + "/core/javautil.kt", + "/core/javalang.kt", + "/core/core.kt", + "/core/math.kt", + "/core/json.kt", + "/raphael/raphael.kt", + "/html5/core.kt" ); @@ -45,7 +46,7 @@ public abstract class Config { List lines = Files.readLines(file, Charsets.UTF_8); return lines.get(0); } catch (Exception ex) { - return "jslib\\src"; + return "jslib/src"; } } @@ -53,7 +54,16 @@ public abstract class Config { private static List initLibFiles(@NotNull Project project) { List libFiles = new ArrayList(); for (String libFileName : LIB_FILE_NAMES) { - libFiles.add(JetFileUtils.loadPsiFile(libFileName, project)); + InputStream stream = Dummy.class.getResourceAsStream(libFileName); + //noinspection IOResourceOpenedButNotSafelyClosed + JetFile file = null; + try { + String text = readString(stream); + file = JetFileUtils.createPsiFile(libFileName, text, project); + } catch (IOException e) { + e.printStackTrace(); + } + libFiles.add(file); } return libFiles; } @@ -73,4 +83,19 @@ public abstract class Config { return jsLibFiles; } + + static String readString(InputStream is) throws IOException { + char[] buf = new char[2048]; + Reader r = new InputStreamReader(is, "UTF-8"); + StringBuilder s = new StringBuilder(); + while (true) { + int n = r.read(buf); + if (n < 0) + break; + s.append(buf, 0, n); + } + return s.toString(); + } + + } diff --git a/translator/src/org/jetbrains/k2js/translate/utils/AnnotationsUtils.java b/translator/src/org/jetbrains/k2js/translate/utils/AnnotationsUtils.java index 00dce031c8f..7ae74744834 100644 --- a/translator/src/org/jetbrains/k2js/translate/utils/AnnotationsUtils.java +++ b/translator/src/org/jetbrains/k2js/translate/utils/AnnotationsUtils.java @@ -16,9 +16,9 @@ import static org.jetbrains.k2js.translate.utils.DescriptorUtils.getContainingCl public final class AnnotationsUtils { @NotNull - public static final String NATIVE_ANNOTATION_FQNAME = "js.annotations.native"; + public static final String NATIVE_ANNOTATION_FQNAME = "js.native"; @NotNull - public static final String LIBRARY_ANNOTATION_FQNAME = "js.annotations.library"; + public static final String LIBRARY_ANNOTATION_FQNAME = "js.library"; private AnnotationsUtils() { } diff --git a/translator/translator.iml b/translator/translator.iml index b8eb03f35d2..700837a9777 100644 --- a/translator/translator.iml +++ b/translator/translator.iml @@ -27,6 +27,7 @@ +