Commit Graph

65 Commits

Author SHA1 Message Date
Ilya Gorbunov 75069143c7 Rewrite ArrayList, AbstractList, AbstractCollection in kotlin.
AbstractList is imported from GWT.
#KT-12386
2016-09-24 07:08:21 +03:00
Alexey Andreev a9330057cc KT-8283: fix Kotlin.equals method to compare arrays by reference 2016-09-14 16:37:53 +03:00
Alexey Andreev 4ff2b62bc0 KT-12864: add Comparable interface to Enum metadata so that RTTI should handle is Comparable case correctly 2016-08-05 16:32:27 +03:00
Alexey Andreev 97605a97da KT-3008: multiple minor fixes after code review 2016-06-27 15:33:28 +03:00
Alexey Andreev 0cfacfa44a KT-3008 Merge JS runtime modules in one kotlin.js 2016-06-27 15:33:25 +03:00
Alexey Andreev 848d7f92fa KT-3008 Implement AMD, CommonJS and UMD wrappers. Compile stdlib and builtins modules into separate JS files and wrap them in UMD. 2016-06-27 15:33:24 +03:00
Alexey Andreev 95b78e18df KT-3008 Change the way how modules are referenced in JS 2016-06-27 15:33:23 +03:00
Alexey Andreev 6454613b51 JS/RTTI: in expressions like a as T when inferred type for a is S, where S <: T, don't generate type checking 2016-05-05 17:24:25 +03:00
Alexey Andreev 0f6a6a3ba4 JS/RTTI. Fix runtime checking against kotlin.CharSequence 2016-05-05 17:24:25 +03:00
Alexey Tsvetkov 9bb60b48b2 JS/RTTI. Fix run-time type checking against Comparable 2016-05-05 17:24:22 +03:00
Alexey Tsvetkov 3fd387d4a6 JS/RTTI: support unsafe casts
#KT-2670 fixed
2016-05-05 17:24:13 +03:00
Alexey Andreev 337078faf3 KT-11030 Unify concept of objects and companion objects. Fix order of initialization of nested objects. 2016-04-20 18:01:07 +03:00
Ilya Gorbunov ab68b49a70 Introduce RandomAccess to JS.
Make EmptyList support RandomAccess.
#KT-10794
2016-03-30 21:06:18 +03:00
Ilya Gorbunov 91f4cf0ebc Drop Progression<T> and its deprecated properties: start, end, increment.
Drop deprecated range extensions.
Make progression constructors private.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov 9c0f0cad70 Packages: move collections to kotlin.collections. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov 9fbbc9db98 Packages: move Ranges, Progression, ProgressionIterators to kotlin.ranges and PrimitiveIterators to kotlin.collections. 2016-01-22 05:54:38 +03:00
Ilya Gorbunov f91c01919b kotlin.test: 'fail' returns Nothing, 'assertFails' returns Throwable (not nullable).
Js tests now fail at the first failed assertion.
#KT-10289 Fixed
#KT-10369 Fixed
2016-01-14 06:03:40 +03:00
Ilya Gorbunov 661e288362 Introduce 'step' property in progressions instead of 'increment' 2015-11-30 14:12:05 +03:00
Ilya Gorbunov 73e3a252d3 JS: ArrayList.addAll must return Boolean
#KT-7809
2015-11-25 17:19:00 +03:00
Ilya Gorbunov af9020a010 Update Range and Progression built-in implementations in js library.
No need to define special method mapping for js ranges/progressions.
Support progression companion objects' function fromClosedRange as intrinsic
2015-11-11 03:53:51 +03:00
Ilya Gorbunov 8bdd1e3246 Sorting optimizations: do not make excessive copies, introduce methods to sort the whole array.
#KT-9904 Fixed
2015-11-11 03:29:40 +03:00
Ilya Gorbunov 446cdc087d Optimizations in listOf and arrayListOf constructor functions.
Remove linkedListOf() from JS.
#KT-5703 Fixed
#KT-8519 Fixed
2015-10-16 18:28:43 +03:00
Ilya Gorbunov d860f335a3 JS: Make StringBuilder implement CharSequence and introduce secondary constructors. 2015-10-14 22:49:47 +03:00
Mikhail Glukhikh f8a356747e Stdlib rename: 'name' and 'ordinal' are now properties in Enum, same name functions are deprecated 2015-10-14 20:40:13 +03:00
Denis Zharkov 6322198a11 Revert 'isEmpty' transformation 2015-10-14 20:40:01 +03:00
Denis Zharkov 1c7fa42b86 Adjust js codegen and lib to 'charAt' -> 'get' transformation 2015-10-11 19:59:30 +03:00
Denis Zharkov 83b680935b Adjust js stdlib to isEmpty transformation 2015-10-10 12:29:14 +03:00
Denis Zharkov a0e9754edc Adjust js collections to size transformation 2015-10-07 08:46:33 +03:00
Ilya Gorbunov 6f71e54268 In-place array sorting in JS. 2015-08-27 00:07:56 +03:00
Sergey Mashkov 0e25a5ea82 JS: arrayToString should use toString() instead of direct join to handle nulls properly
#KT-8663 Fixed
2015-07-31 14:28:30 +03:00
Sergey Mashkov 2826f193dd AbstractCollection should use Kotlin.toString
#KT-8662 Fixed
2015-07-31 14:28:30 +03:00
Ilya Gorbunov b7829d8471 JS: Make js Error to be mapped to kotlin.Throwable, inherit Exception and Error from Throwable. 2015-07-24 04:32:03 +03:00
Zalim Bashorov 92457543bc JS backend: fix equality check for nullable types
* Generate simple check when compare with `null` literal.
* Use Kotlin.equals if type of receiver or argument is nullable.
* Don't call equals method if any of receiver or argument is null (at runtime, not only literal). For more information see KT-4356.

 #KT-7530 fixed
 #KT-7916 fixed
2015-06-03 23:09:16 +03:00
Ilya Gorbunov df6d4dc73f Implement some of missing AbstractList methods.
Make ListIterator to implement kotlin.ListIterator interface.
Add TODOs and UnsupportedOperationExceptions for members left to implement.
2015-05-24 05:04:06 +03:00
Ilya Gorbunov 315badd5d1 Restore native js functions: startsWith, endsWith, contains.
startsWith and endsWith implementation taken from MDN.
2015-04-01 23:05:52 +03:00
Ilya Gorbunov b10d869cd7 indexOf*, split, startsWith, endsWith: JS implementation 2015-03-31 02:24:35 +03:00
Zalim Bashorov 7668f44655 JS lib: added hasNext to Kotlin.ListIterator and fixed next.
#KT-6506 Fixed

Additionally made abstract AbstractList::get and AbstractCollection::size.
2014-12-29 19:15:32 +03:00
Zalim Bashorov 6c6ced2442 Minor in JS lib: avoid to use undefined literal which may be over overlapped. 2014-12-26 14:20:21 +03:00
Michael Nedzelsky 8074ab27ea JS backend: fix KT-6112 jsonFromTuples is broken
#KT-6112 Fixed
2014-12-18 18:10:26 +03:00
Ilya Ryzhenkov 828ba385ea Cleanup ordering, improve API 2014-12-16 17:33:20 +03:00
Alexander Udalov 93696ff9bd Make Array.indices extension property, move to stdlib
This is not something that needs to be intrinsified. Note that compiler
optimizations are still possible and the fact whether 'indices' is a member or
an extension is irrelevant to the optimizer
2014-11-17 15:20:44 +03:00
Michael Nedzelsky dd86823480 JS backend: compile some builtins to builtins.js instead of stdlib 2014-11-11 17:09:00 +03:00
Zalim Bashorov 335771d580 JS lib: provide Kotlin object as parameter of IIFE. 2014-10-21 14:49:00 +04:00
Alexander Udalov 624e507ec2 Make enum classes comparable
#KT-3727 Fixed
2014-10-17 21:27:23 +04:00
Zalim Bashorov 55c19a632a JS lib: introduced different output strategies, and chose them depending of environment.
#KT-2994 Fixed
2014-10-14 18:02:28 +04:00
Michael Nedzelsky e73866040d JS backend: correct hierarchy for collections in kotlin_lib.js, maps.js 2014-10-14 16:46:01 +04:00
Zalim Bashorov f20ee6df4b JS backend: fixes in ranges:
* map all number ranges and progressions;
* add missed hashCode and static EMPTY to Range implementations;
* add missed hashCode and equals to Progression implementations;
* fix type of start and end in CharRange and CharProgression.
2014-10-13 21:25:56 +04:00
Michael Nedzelsky e5bbc2a0d8 JS backend: support for Throwable.getMessage 2014-10-09 19:32:00 +04:00
Zalim Bashorov 9b04e3e3fe JS backend: use all generic parameters in mangling 2014-10-06 23:18:54 +04:00
Michael Nedzelsky 6aff9803c4 JS backend: support for char type 2014-09-28 19:51:54 +04:00