re-enabled compiling to JS test cases now we've fixed the compilation of the latest comparator based standard library code

This commit is contained in:
James Strachan
2012-06-29 23:13:05 +01:00
parent e06e5198ed
commit 63e0f169fc
9 changed files with 39 additions and 34 deletions
-4
View File
@@ -10,10 +10,6 @@ public trait Comparator<T> {
fun compare(obj1 : T, obj2 : T) : Int; fun compare(obj1 : T, obj2 : T) : Int;
} }
library("comparator")
public fun comparator<T>(f : (T, T) -> Int) : Comparator<T> = js.noImpl
library library
public trait Iterator<T> { public trait Iterator<T> {
open fun next() : T = js.noImpl open fun next() : T = js.noImpl
+6
View File
@@ -0,0 +1,6 @@
package kotlin
import java.util.*
library("comparator")
public fun comparator<T>(f : (T, T) -> Int) : Comparator<T> = js.noImpl
@@ -36,15 +36,10 @@ import java.util.Set;
*/ */
public class StdLibTestToJSTest extends StdLibTestSupport { public class StdLibTestToJSTest extends StdLibTestSupport {
public void testGenerateTestCase() throws Exception { public void testGenerateTestCase() throws Exception {
/*
TODO temporary disabled test
generateJavaScriptFiles(EcmaVersion.all(), generateJavaScriptFiles(EcmaVersion.all(),
"libraries/stdlib/test", "libraries/stdlib/test",
"ListTest.kt", "ListTest.kt",
"StringTest.kt", "StringTest.kt",
"js/SimpleTest.kt"); "js/SimpleTest.kt");
*/
} }
} }
@@ -36,14 +36,10 @@ import java.util.Set;
public class StdLibToJSTest extends StdLibTestSupport { public class StdLibToJSTest extends StdLibTestSupport {
public void testCompileJavaScriptFiles() throws Exception { public void testCompileJavaScriptFiles() throws Exception {
/*
TODO temporary disabled test
generateJavaScriptFiles(EcmaVersion.all(), generateJavaScriptFiles(EcmaVersion.all(),
"libraries/stdlib/src", "libraries/stdlib/src",
"kotlin/Preconditions.kt", "kotlin/Preconditions.kt",
"kotlin/dom/Dom.kt", "kotlin/dom/Dom.kt",
"kotlin/support/AbstractIterator.kt"); "kotlin/support/AbstractIterator.kt");
*/
} }
} }
@@ -58,6 +58,7 @@ public abstract class Config {
"/core/javautil.kt", "/core/javautil.kt",
"/core/javalang.kt", "/core/javalang.kt",
"/core/javaio.kt", "/core/javaio.kt",
"/core/kotlin.kt",
"/core/date.kt", "/core/date.kt",
"/core/core.kt", "/core/core.kt",
"/core/math.kt", "/core/math.kt",
@@ -101,6 +102,7 @@ public abstract class Config {
"/kotlin/JLangIterablesLazy.kt", "/kotlin/JLangIterablesLazy.kt",
"/kotlin/JLangIterablesSpecial.kt", "/kotlin/JLangIterablesSpecial.kt",
"/kotlin/support/AbstractIterator.kt", "/kotlin/support/AbstractIterator.kt",
//"/kotlin/Ordering.kt",
"/kotlin/Strings.kt", "/kotlin/Strings.kt",
"/kotlin/test/Test.kt" "/kotlin/test/Test.kt"
); );
+3 -8
View File
@@ -52,15 +52,13 @@
<module>tools/runtime</module> <module>tools/runtime</module>
<module>tools/kotlin-maven-plugin</module> <module>tools/kotlin-maven-plugin</module>
<module>tools/kotlin-js-library</module> <module>tools/kotlin-js-library</module>
<!--
TODO temporary disabled until the Ordering.kt#comparator() works in JS
<module>tools/kotlin-js-tests</module> <module>tools/kotlin-js-tests</module>
-->
<!-- <!--
TODO temporary disabled until the java.util.Collections.emptyList() works in JS TODO temporary disabled until KT-2314 fixed
<module>tools/kotlin-js-tests-junit</module> <module>tools/kotlin-js-tests-junit</module>
--> -->
<module>tools/kdoc</module> <module>tools/kdoc</module>
<module>tools/kdoc-maven-plugin</module> <module>tools/kdoc-maven-plugin</module>
@@ -75,11 +73,8 @@
<module>examples/kotlin-java-example</module> <module>examples/kotlin-java-example</module>
<!--
TODO disabled while I fix a JS issue
<module>examples/js-example</module> <module>examples/js-example</module>
<module>examples/browser-example</module> <module>examples/browser-example</module>
-->
</modules> </modules>
<dependencies> <dependencies>
@@ -5,6 +5,7 @@ import java.util.Collection
import java.util.List import java.util.List
import java.util.AbstractList import java.util.AbstractList
import java.util.Iterator import java.util.Iterator
import java.util.Comparator
/** /**
* Count the number of elements in collection. * Count the number of elements in collection.
@@ -71,19 +72,6 @@ public fun <T> java.lang.Iterable<T>.last() : T {
return last; return last;
} }
/**
* Copies all elements into a [[List]] and sorts it by value of compare_function(element)
*
* E.g. arrayList("two" to 2, "one" to 1).sortBy({it._2}) returns list sorted by second element of tuple
*
* @includeFunctionBody ../../test/CollectionTest.kt sortBy
*/
public inline fun <in T, R: Comparable<in R>> java.lang.Iterable<T>.sortBy(f: (T) -> R): java.util.List<T> {
val sortedList = this.toList()
java.util.Collections.sort(sortedList, comparator {(x, y) -> f(x).compareTo(f(y))})
return sortedList
}
/** /**
* Checks if collection contains given item. * Checks if collection contains given item.
* *
@@ -0,0 +1,27 @@
package kotlin
import java.util.AbstractList
import java.util.Collection
import java.util.Comparator
import java.util.Iterator
import java.util.List
// TODO this function is here as it breaks the JS compiler; lets move back to JLangIterablesSpecial when it works again :)
/**
* Copies all elements into a [[List]] and sorts it by value of compare_function(element)
*
* E.g. arrayList("two" to 2, "one" to 1).sortBy({it._2}) returns list sorted by second element of tuple
*
* @includeFunctionBody ../../test/CollectionTest.kt sortBy
*/
public inline fun <in T, R: Comparable<in R>> java.lang.Iterable<T>.sortBy(f: (T) -> R): java.util.List<T> {
val sortedList = this.toList()
val sortBy: Comparator<T> = comparator<T> {(x: T, y: T) ->
val xr = f(x)
val yr = f(y)
xr.compareTo(yr)
}
java.util.Collections.sort(sortedList, sortBy)
return sortedList
}