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 @@
+