forked from svaarala/duktape
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASES.txt
218 lines (138 loc) · 6.14 KB
/
RELEASES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
================
Duktape releases
================
Released
========
0.1.0 (2013-02-14)
------------------
* Initial alpha release
* Core features work: compiler, executor, regexps, garbage collection
* Most built-ins incomplete or missing
0.2.0 (2013-02-27)
------------------
* Built-ins implemented: Boolean, Date, JSON
* Date built-in has initial, minimal local time / locale support
* Initial internal documentation: regexp, datetime, json
0.3.0 (2013-03-16)
------------------
* Built-ins implemented: global object, Object, String
0.4.0 (2013-03-31)
------------------
* Built-ins: Array, Number, completing built-ins
0.5.0 (2013-05-17)
------------------
* Built-in number conversion primitives
* Cleanup built-ins, improve test cases for built-ins
0.6.0 (2013-09-21)
------------------
* First round of public API cleanup, and add basic API documentation
* First version of duktape.org website
0.7.0 (2013-10-30)
------------------
* Traceback support improved
* Clean up and document error object properties
* Add prototype objects for buffer and pointer values, and make them object
coercible
* Proper support for big, little, and "middle endian" environments
* Single file combined source distributable
* Portability and bug fixes
0.8.0 (2013-12-18)
------------------
* Remove DUK_PROFILE model, explicit DUK_OPT_xxx feature options added for
tuning the build (see web docs)
* Register shuffling added to compiler which mostly eliminates constant and
temporary register limits
* Reduce code footprint, make built-in data 'const' so that it compiles
into the 'text' section
* Augment errors created when a built-in error constructor is called as
a normal function (e.g. "var e = Error('test')")
* Enforce string/buffer length limits to avoid corner cases with strings
and buffers close to size_t limit
* Ecmascript E5.1 test cases and fixes
* Mark-and-sweep stringtable leak fixed, affected mostly builds without
reference counting
* Run a few mark-and-sweep passes in duk_destroy_heap() to give finalizers
a chance to run in most (but not all) cases
* Coroutine yield fixes
* Portability and bug fixes
0.9.0 (2014-02-02)
------------------
* Added duk_gc() API call to force GC, implemented duk_map_string() and
duk_decode_string()
* Added extended JSON format variants JSONX and JSONC; NULL pointer
values string now coerce to "null" instead of e.g. "(nil)" to match
JSONX format
* Added input line number to compiler error messages (e.g. SyntaxErrors)
* Added support for function declarations outside function or program top
level (also known as "function statements"), with V8-like semantics
* Renamed __duk__ to Duktape for more consistency with Ecmascript conventions,
and made the following cleanups:
- removed somewhat useless 'build'
- added 'env'
- replaced 'addr' and 'refc' with 'info' which gives more internal info
- merged 'setFinalizer' and 'getFinalizer' into a single 'fin' call
- compatibility properties available for now (e.g. __duk__), but will
be removed after this release
* Removed array size limit for very large array joins
* Improve Unicode handling of Greek final sigma
* Make mark-and-sweep interval relative to current heap size (measured as
combined object and string count)
* Add DUK_OPT_NO_VOLUNTARY_GC to disable voluntary mark-and-sweep entirely;
this is useful in timing sensitive applications like games
* Preliminary internal support for periodic bytecode executor interrupts
which can be used to implement executor step limits, profiling, and
debugging
* More feature options for build tuning
* More self tests to detect obscure compiler bugs, two's complement
arithmetic, etc (enable with DUK_OPT_SELF_TESTS)
* Fixed several compile warnings, fixed warnings generated by GCC -Wextra
* Fixed some incorrect assertions (with no underlying bug)
* Fixed a coroutine termination bug which caused assertion errors and
occasional segfaults when an uncaught error terminated a thread with
a catch point active
* Fixed a tailcall bug: the current activation was not closed which
caused variable lookups to fail if an inner function accessed
variables in the surrounding activation
* Fixed a few bound constructor bugs
* Fixed handling of "get" and "set": they were handled as reserved words
which prevented valid statements like "var set = 1;"
* Fixed a switch-case bug where code was accepted before the first
case/default clause
* Fixed a switch-case bug where successive case clauses with no code
in-between was not handled correctly
* Fixed a for statement control flow bug when the third clause of the for
statement was empty and a continue was used
* Fixed error lineNumber bug triggered when there was more than 127
source lines between successive compiled statements
* Fixed some line terminator handling issues
* Fixed relational operator ToPrimitive() coercion order, for some
operators coercion order was reversed
* Fixed 'with' statement in strict mode (did not throw SyntaxError)
* Fixed strictness handling of an indirect eval call from a strict
function (eval incorrectly inherited strict mode)
* Several test262 and underscore.js test case fixes (other than above)
* Windows compatibility for both WIN32 and WIN64, tested with MinGW (x86),
MINGW-w64 (x64), VS2010 Express (x32), VS2013 Express (x32 and x64)
* Portability fixes for non-C99 platforms (like MSVC in VS2010)
* Drop 'full distributable' build, which is replaced by the public GitHub
repo; simplify Makefiles etc accordingly (this change is not visible in
the source distributable)
0.10.0 (2014-03-XX)
-------------------
* Add a message argument to fatal handler function callback, simplify
internal fatal error and panic handling
* C typing wrapped throughout to allow porting to more exotic platforms,
e.g. platforms where "int" is a 16-bit type
* Fix O(depth^2) inner function parsing issue, inner functions are now
only parsed once and deeply nested inner functions are no longer a
performance issue
Planned
=======
0.11.0 (2014-XX-XX)
-------------------
1.0.0 (2014-XX-XX)
-------------------
* Feature complete baseline release
1.1.0 (2014-XX-XX)
------------------
* Debugger