opal 0.9.4 → 0.10.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/.gitignore +2 -3
- data/.gitmodules +5 -2
- data/.jshintrc +1 -8
- data/.rspec +1 -1
- data/.travis.yml +15 -23
- data/CHANGELOG.md +511 -326
- data/CODE_OF_CONDUCT.md +13 -15
- data/CONTRIBUTING.md +26 -216
- data/Gemfile +20 -12
- data/Guardfile +2 -2
- data/HACKING.md +230 -0
- data/README.md +6 -7
- data/bin/opal-mspec +1 -1
- data/config.ru +2 -2
- data/docs/faq.md +1 -1
- data/docs/source_maps.md +1 -1
- data/lib/opal.rb +1 -0
- data/lib/opal/builder.rb +1 -1
- data/lib/opal/cli.rb +30 -28
- data/lib/opal/cli_options.rb +3 -0
- data/lib/opal/cli_runners.rb +14 -1
- data/lib/opal/cli_runners/{apple_script.rb → applescript.rb} +3 -3
- data/lib/opal/cli_runners/nashorn.rb +2 -2
- data/lib/opal/cli_runners/nodejs.rb +2 -2
- data/lib/opal/cli_runners/phantom.js +24 -0
- data/lib/opal/cli_runners/phantomjs.rb +10 -10
- data/lib/opal/cli_runners/server.rb +3 -3
- data/lib/opal/compiler.rb +43 -4
- data/lib/opal/config.rb +3 -1
- data/lib/opal/errors.rb +13 -0
- data/lib/opal/fragment.rb +0 -13
- data/lib/opal/nodes.rb +10 -0
- data/lib/opal/nodes/args/initialize_kwargs.rb +28 -0
- data/lib/opal/nodes/args/kwarg.rb +29 -0
- data/lib/opal/nodes/args/kwoptarg.rb +29 -0
- data/lib/opal/nodes/args/kwrestarg.rb +39 -0
- data/lib/opal/nodes/args/mlhsarg.rb +79 -0
- data/lib/opal/nodes/args/normarg.rb +26 -0
- data/lib/opal/nodes/args/optarg.rb +27 -0
- data/lib/opal/nodes/args/post_args.rb +200 -0
- data/lib/opal/nodes/args/post_kwargs.rb +31 -0
- data/lib/opal/nodes/args/restarg.rb +33 -0
- data/lib/opal/nodes/base.rb +12 -0
- data/lib/opal/nodes/call.rb +92 -33
- data/lib/opal/nodes/def.rb +26 -169
- data/lib/opal/nodes/hash.rb +10 -4
- data/lib/opal/nodes/helpers.rb +6 -3
- data/lib/opal/nodes/inline_args.rb +61 -0
- data/lib/opal/nodes/iter.rb +73 -82
- data/lib/opal/nodes/logic.rb +12 -2
- data/lib/opal/nodes/masgn.rb +1 -2
- data/lib/opal/nodes/node_with_args.rb +141 -0
- data/lib/opal/nodes/rescue.rb +121 -43
- data/lib/opal/nodes/scope.rb +24 -5
- data/lib/opal/nodes/super.rb +122 -54
- data/lib/opal/nodes/top.rb +0 -12
- data/lib/opal/nodes/yield.rb +2 -13
- data/lib/opal/parser.rb +67 -39
- data/lib/opal/parser/grammar.rb +3319 -2961
- data/lib/opal/parser/grammar.y +234 -46
- data/lib/opal/parser/lexer.rb +105 -17
- data/lib/opal/parser/sexp.rb +4 -0
- data/lib/opal/paths.rb +4 -0
- data/lib/opal/regexp_anchors.rb +19 -1
- data/lib/opal/sprockets.rb +21 -18
- data/lib/opal/sprockets/environment.rb +0 -8
- data/lib/opal/sprockets/processor.rb +13 -16
- data/lib/opal/sprockets/server.rb +6 -12
- data/lib/opal/version.rb +1 -1
- data/opal.gemspec +1 -0
- data/opal/corelib/array.rb +209 -131
- data/opal/corelib/basic_object.rb +7 -3
- data/opal/corelib/class.rb +11 -17
- data/opal/corelib/constants.rb +2 -2
- data/opal/corelib/enumerable.rb +178 -355
- data/opal/corelib/enumerator.rb +3 -46
- data/opal/corelib/error.rb +2 -2
- data/opal/corelib/file.rb +13 -1
- data/opal/corelib/hash.rb +26 -56
- data/opal/corelib/helpers.rb +10 -0
- data/opal/corelib/kernel.rb +6 -3
- data/opal/corelib/module.rb +62 -31
- data/opal/corelib/number.rb +7 -16
- data/opal/corelib/proc.rb +24 -9
- data/opal/corelib/range.rb +4 -13
- data/opal/corelib/runtime.js +515 -378
- data/opal/corelib/string.rb +21 -49
- data/opal/corelib/struct.rb +50 -35
- data/opal/corelib/unsupported.rb +18 -30
- data/opal/opal.rb +0 -1
- data/opal/opal/mini.rb +1 -0
- data/spec/README.md +6 -4
- data/spec/filters/bugs/array.rb +0 -42
- data/spec/filters/bugs/basicobject.rb +0 -2
- data/spec/filters/bugs/bigdecimal.rb +160 -0
- data/spec/filters/bugs/class.rb +0 -5
- data/spec/filters/bugs/date.rb +1 -48
- data/spec/filters/bugs/enumerable.rb +4 -12
- data/spec/filters/bugs/enumerator.rb +0 -1
- data/spec/filters/bugs/exception.rb +4 -3
- data/spec/filters/bugs/float.rb +4 -2
- data/spec/filters/bugs/kernel.rb +25 -10
- data/spec/filters/bugs/language.rb +119 -68
- data/spec/filters/bugs/method.rb +135 -0
- data/spec/filters/bugs/module.rb +13 -28
- data/spec/filters/bugs/proc.rb +18 -8
- data/spec/filters/bugs/range.rb +0 -3
- data/spec/filters/bugs/rational.rb +4 -0
- data/spec/filters/bugs/regexp.rb +68 -36
- data/spec/filters/bugs/string.rb +1 -1
- data/spec/filters/bugs/struct.rb +0 -12
- data/spec/filters/bugs/time.rb +1 -0
- data/spec/filters/bugs/unboundmethod.rb +2 -1
- data/spec/filters/unsupported/freeze.rb +3 -1
- data/spec/filters/unsupported/language.rb +0 -7
- data/spec/filters/unsupported/privacy.rb +7 -6
- data/spec/filters/unsupported/string.rb +10 -0
- data/spec/filters/unsupported/struct.rb +3 -0
- data/spec/filters/unsupported/symbol.rb +9 -0
- data/spec/filters/unsupported/taint.rb +0 -3
- data/spec/filters/unsupported/thread.rb +1 -0
- data/spec/lib/cli_runners/phantomjs_spec.rb +39 -0
- data/spec/lib/cli_spec.rb +42 -1
- data/spec/lib/compiler/call_spec.rb +700 -0
- data/spec/lib/compiler_spec.rb +46 -28
- data/spec/lib/config_spec.rb +13 -0
- data/spec/lib/parser/call_spec.rb +18 -0
- data/spec/lib/parser/def_spec.rb +29 -0
- data/spec/lib/parser/iter_spec.rb +15 -15
- data/spec/lib/parser/lambda_spec.rb +153 -12
- data/spec/lib/parser/string_spec.rb +5 -0
- data/spec/lib/parser/undef_spec.rb +1 -1
- data/spec/lib/parser/variables_spec.rb +24 -0
- data/spec/lib/paths_spec.rb +12 -5
- data/spec/lib/spec_helper.rb +5 -0
- data/spec/lib/sprockets/processor_spec.rb +6 -5
- data/spec/lib/sprockets_spec.rb +8 -0
- data/spec/mspec-opal/formatters.rb +188 -0
- data/spec/mspec-opal/runner.rb +193 -0
- data/spec/opal/core/enumerator/with_index_spec.rb +6 -0
- data/spec/opal/core/kernel/define_singleton_method_spec.rb +1 -1
- data/spec/opal/core/kernel/instance_variables_spec.rb +14 -0
- data/spec/opal/core/kernel/loop_spec.rb +1 -1
- data/spec/opal/core/kernel/raise_spec.rb +1 -1
- data/spec/opal/core/language/heredoc_spec.rb +42 -0
- data/spec/opal/core/language/rescue_spec.rb +18 -0
- data/spec/opal/core/language_spec.rb +22 -0
- data/spec/opal/core/module/const_defined_spec.rb +1 -2
- data/spec/opal/core/module/name_spec.rb +6 -0
- data/spec/opal/core/runtime/bridged_classes_spec.rb +14 -2
- data/spec/opal/core/runtime/rescue_spec.rb +12 -2
- data/spec/opal/core/runtime/super_spec.rb +1 -0
- data/spec/opal/core/string_spec.rb +21 -0
- data/spec/opal/stdlib/js_spec.rb +1 -1
- data/spec/opal/stdlib/native/hash_spec.rb +7 -0
- data/spec/opal/stdlib/promise/always_spec.rb +24 -5
- data/spec/opal/stdlib/promise/rescue_spec.rb +15 -6
- data/spec/opal/stdlib/promise/then_spec.rb +13 -5
- data/spec/opal/stdlib/promise/trace_spec.rb +5 -6
- data/spec/opal/stdlib/strscan/scan_spec.rb +1 -1
- data/spec/ruby_specs +122 -0
- data/spec/spec_helper.rb +3 -15
- data/stdlib/base64.rb +51 -121
- data/stdlib/bigdecimal.rb +231 -0
- data/stdlib/bigdecimal/bignumber.js.rb +11 -0
- data/stdlib/bigdecimal/kernel.rb +5 -0
- data/stdlib/date.rb +252 -10
- data/stdlib/native.rb +38 -38
- data/stdlib/nodejs/dir.rb +8 -6
- data/stdlib/nodejs/file.rb +28 -3
- data/stdlib/nodejs/node_modules/.bin/js-yaml +1 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esparse +1 -0
- data/stdlib/nodejs/node_modules/js-yaml/node_modules/.bin/esvalidate +1 -0
- data/stdlib/nodejs/require.rb +1 -1
- data/stdlib/nodejs/yaml.rb +3 -2
- data/stdlib/opal-parser.rb +7 -2
- data/stdlib/pathname.rb +23 -1
- data/stdlib/phantomjs.rb +10 -0
- data/stdlib/promise.rb +38 -23
- data/tasks/building.rake +3 -3
- data/tasks/testing.rake +27 -14
- data/tasks/testing/mspec_special_calls.rb +1 -1
- data/tasks/testing/sprockets-phantomjs.js +4 -0
- data/test/opal/test_keyword.rb +110 -110
- data/test/opal/unsupported_and_bugs.rb +30 -0
- data/vendored-minitest/minitest/assertions.rb +1 -1
- metadata +65 -15
- data/.spectator +0 -2
- data/.spectator-mspec +0 -3
- data/opal/corelib/array/inheritance.rb +0 -127
- data/spec/rubyspecs +0 -139
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85f0110e658c1cefc27cccb2781d3a23e92531f0
|
4
|
+
data.tar.gz: 46e3e241849788fa527985c5e5ad52837d315c02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd22ed6d034471bce5dfaee1b3b76f91aaf16ead1a0465c247d006f00901d90c96854bc8a4774d3b3ec34980c0b009675b6a6c8b63c64877801340cfd1f82eef
|
7
|
+
data.tar.gz: ccb284eac1e8fe124ef80a3a0b7ad2fada35204eb141f252893d7babfc84b2a8a7143e12430219290bd771225a94723a080179fd0313003647b57bef3284cb94
|
data/.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
CHANGELOG.md merge=union
|
data/.gitignore
CHANGED
data/.gitmodules
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
[submodule "spec/rubyspec"]
|
2
|
-
path = spec/
|
3
|
-
url = https://github.com/ruby/
|
2
|
+
path = spec/ruby
|
3
|
+
url = https://github.com/ruby/spec.git
|
4
4
|
[submodule "test/cruby"]
|
5
5
|
path = test/cruby
|
6
6
|
url = https://github.com/ruby/ruby.git
|
7
7
|
branch = ruby_2_2
|
8
|
+
[submodule "spec/mspec"]
|
9
|
+
path = spec/mspec
|
10
|
+
url = https://github.com/ruby/mspec.git
|
data/.jshintrc
CHANGED
@@ -10,14 +10,7 @@
|
|
10
10
|
"undef" : true, // Prohibit the use of explicitly undeclared variables
|
11
11
|
"unused" : true, // Warn when you define and never use your variables
|
12
12
|
|
13
|
-
"
|
14
|
-
"Opal": true,
|
15
|
-
"OpalNode": true,
|
16
|
-
"callPhantom": true,
|
17
|
-
"JSON": true,
|
18
|
-
"Pippo": true,
|
19
|
-
"Java": true
|
20
|
-
},
|
13
|
+
"predef" : ["Opal", "JSON", "Java", "callPhantom", "OpalNode"],
|
21
14
|
|
22
15
|
"browser": true,
|
23
16
|
"node": true,
|
data/.rspec
CHANGED
data/.travis.yml
CHANGED
@@ -11,55 +11,48 @@ matrix:
|
|
11
11
|
fast_finish: true
|
12
12
|
|
13
13
|
include:
|
14
|
-
- rvm: 2.
|
14
|
+
- rvm: 2.3.0
|
15
15
|
env: RUN=jshint SUITE=core
|
16
16
|
|
17
|
-
- rvm: 2.
|
17
|
+
- rvm: 2.3.0
|
18
18
|
env: RUN=jshint SUITE=stdlib
|
19
19
|
|
20
|
-
- rvm: 2.
|
20
|
+
- rvm: 2.3.0
|
21
21
|
env: RUN=mspec_opal_nodejs
|
22
22
|
|
23
|
-
- rvm: 2.
|
24
|
-
env: RUN=
|
23
|
+
- rvm: 2.3.0
|
24
|
+
env: RUN=mspec_ruby_nodejs TZ="/usr/share/zoneinfo/Pacific/Fiji"
|
25
25
|
|
26
|
-
- rvm: 2.
|
27
|
-
env: RUN=
|
26
|
+
- rvm: 2.3.0
|
27
|
+
env: RUN=mspec_ruby_sprockets_phantomjs
|
28
28
|
|
29
|
-
- rvm: 2.
|
30
|
-
env: RUN=rspec
|
29
|
+
- rvm: 2.3.0
|
30
|
+
env: RUN=rspec RACK_VERSION='2.0.0.alpha' CHECK_COVERAGE=true
|
31
31
|
|
32
32
|
- rvm: ruby-head
|
33
33
|
env: RUN=rspec
|
34
34
|
|
35
|
-
- rvm: 2.
|
36
|
-
env: RUN=rspec
|
35
|
+
- rvm: 2.2.4
|
36
|
+
env: RUN=rspec TILT_VERSION=2.0.1
|
37
37
|
|
38
|
-
- rvm: 2.
|
38
|
+
- rvm: 2.1.8
|
39
39
|
env: RUN=rspec
|
40
40
|
|
41
|
-
- rvm:
|
42
|
-
env: RUN=rspec
|
41
|
+
- rvm: 2.0.0
|
42
|
+
env: RUN="rspec mspec_opal_nodejs"
|
43
43
|
|
44
44
|
- rvm: rbx
|
45
45
|
env: RUN=rspec
|
46
46
|
|
47
|
-
- rvm: jruby
|
47
|
+
- rvm: jruby-9.0.5.0
|
48
48
|
env: RUN=rspec
|
49
49
|
|
50
50
|
- rvm: jruby-head
|
51
51
|
env: RUN=rspec
|
52
52
|
|
53
53
|
allow_failures:
|
54
|
-
- rvm: 2.2
|
55
|
-
env: RUN=jshint SUITE=stdlib
|
56
|
-
|
57
|
-
- rvm: 1.9.3
|
58
|
-
- rvm: 2.1
|
59
|
-
- rvm: 2.0
|
60
54
|
- rvm: ruby-head
|
61
55
|
- rvm: rbx
|
62
|
-
- rvm: jruby
|
63
56
|
- rvm: jruby-head
|
64
57
|
|
65
58
|
|
@@ -79,4 +72,3 @@ notifications:
|
|
79
72
|
webhooks:
|
80
73
|
urls:
|
81
74
|
- https://webhooks.gitter.im/e/2ea12333adebda0c2289
|
82
|
-
|
data/CHANGELOG.md
CHANGED
@@ -1,357 +1,461 @@
|
|
1
|
-
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
|
+
|
6
|
+
Changes are grouped as follows:
|
7
|
+
- **Added** for new features.
|
8
|
+
- **Changed** for changes in existing functionality.
|
9
|
+
- **Deprecated** for once-stable features removed in upcoming releases.
|
10
|
+
- **Removed** for deprecated features removed in this release.
|
11
|
+
- **Fixed** for any bug fixes.
|
12
|
+
- **Security** to invite users to upgrade in case of vulnerabilities.
|
13
|
+
|
14
|
+
<!--
|
15
|
+
Whitespace conventions:
|
16
|
+
- 4 spaces before ## titles
|
17
|
+
- 2 spaces before ### titles
|
18
|
+
- 1 spaces before normal text
|
19
|
+
-->
|
2
20
|
|
3
|
-
* Rebuilt the gem with Rubygems 2.4.8 as building with 2.5.1+ would make the gem un-installable
|
4
21
|
|
5
|
-
* Removed all symlinks from `node_module` directories to avoid further issues building the gem
|
6
22
|
|
7
|
-
## 0.9.3 2016-06-06
|
8
23
|
|
9
|
-
|
24
|
+
## [0.10.0] - Unreleased
|
10
25
|
|
11
|
-
## 0.9.2 2016-01-10
|
12
26
|
|
13
|
-
|
27
|
+
### Added
|
14
28
|
|
15
|
-
|
29
|
+
- `Module#included_modules` works
|
30
|
+
- Internal runtime cleanup (#1241)
|
31
|
+
- Make it easier to add custom runners for the CLI (#1261)
|
32
|
+
- Add Rack v2 compatibility (#1260)
|
33
|
+
- Newly compliant with the Ruby Spec Suite:
|
34
|
+
* `Array#slice!`
|
35
|
+
* `Array#repeated_combination`
|
36
|
+
* `Array#repeated_permutation`
|
37
|
+
* `Array#sort_by!`
|
38
|
+
* `Enumerable#sort`
|
39
|
+
* `Enumerable#max`
|
40
|
+
* `Enumerable#each_entry` (#1303)
|
41
|
+
* `Module#const_set`
|
42
|
+
- Add `-L` / `--library` option to compile only the code of the library (#1281)
|
43
|
+
- Implement `Kernel.open` method (#1218)
|
44
|
+
- Generate meaningful names for functions representing Ruby methods
|
45
|
+
- Implement `Pathname#join` and `Pathname#+` methods (#1301)
|
46
|
+
- Added support for `begin;rescue;else;end`.
|
47
|
+
- Implement `File.extname` method (#1219)
|
48
|
+
- Implement File.extname method (#1219)
|
49
|
+
- Added support for keyword arguments as lambda parameters.
|
50
|
+
- Super works with define_method blocks
|
51
|
+
- Added support for kwsplats.
|
52
|
+
- Added support for squiggly heredoc.
|
16
53
|
|
17
|
-
* Backport rack2 compatibility (#1260)
|
18
54
|
|
19
|
-
|
55
|
+
### Changed
|
20
56
|
|
21
|
-
|
57
|
+
- Remove deprecation of `Opal::Environment` after popular request
|
58
|
+
- Setting `Opal::Config.dynamic_require_severity` will no longer affect `Opal.dynamic_require_severity` which now needs to be explicitly set if it differs from the default value of `"warning"` (See also the `Opal.dynamic_require_severity` rename below).
|
59
|
+
- The new default for `Opal::Config.dynamic_require_severity` is now `:warning`
|
60
|
+
- `Opal.dynamic_require_severity` and `OPAL_CONFIG` are now merged into `Opal.config.missing_require_severity` (defaults to `error`, the expected ruby behavior) and `Opal.config.unsupported_features_severity` (defaults to `warning`, e.g. a one-time heads up that freezing isn't supported)
|
61
|
+
- `Hash` instances should now list the string map (`$$smap`) as the first key, making debugging easier (most hashes will just have keys there).
|
22
62
|
|
23
63
|
|
24
|
-
|
64
|
+
### Deprecated
|
25
65
|
|
26
|
-
|
27
|
-
* `Kernel#instance_variable_set`
|
28
|
-
* `Kernel#instance_variable_get`
|
29
|
-
* `Kernel#instance_variables`
|
66
|
+
- `Opal::Processor.stubbed_files` and `Opal::Processor.stub_file` in favor of `Opal::Config.stubbed_files`
|
30
67
|
|
31
|
-
* Renamed:
|
32
|
-
* `Hash.keys` => `Hash.$$keys`
|
33
|
-
* `Hash.map` => `Hash.$$map`
|
34
|
-
* `Hash.smap` => `Hash.$$smap`
|
35
68
|
|
36
|
-
|
69
|
+
### Removed
|
37
70
|
|
38
|
-
|
71
|
+
- Removed the previously deprecated `Opal::Fragment#to_code`
|
72
|
+
- Removed the previously deprecated `Opal::Processor.load_asset_code`
|
73
|
+
- Removed the previously deprecated acceptance of a boolean as single argument to `Opal::Server.new`
|
39
74
|
|
40
|
-
* `method_added`, `method_removed` and `method_undefined` reflection now works.
|
41
75
|
|
42
|
-
|
76
|
+
### Fixed
|
43
77
|
|
44
|
-
|
78
|
+
- `super` works properly with overwritten alias methods (#1384)
|
79
|
+
- `NoMethodError` does not need a name to be instantiated
|
80
|
+
- `method_added` fix for singleton class cases
|
81
|
+
- Super now works properly with blocks (#1237)
|
82
|
+
- Fix using more than two `rescue` in sequence (#1269)
|
83
|
+
- Fixed inheritance for `Array` subclasses.
|
84
|
+
- Always populate all stub_subscribers with all method stubs, as a side effect of this now `method_missing` on bridged classes now works reliably (#1273)
|
85
|
+
- Fix `Hash#instance_variables` to not return `#default` and `#default_proc` (#1258)
|
86
|
+
- Fix `Module#name` when constant was created using `Opal.cdecl` (constant declare) like `ChildClass = Class.new(BaseClass)` (#1259)
|
87
|
+
- Fix issue with JavaScript `nil` return paths being treated as true (#1274)
|
88
|
+
- Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects (#1249, #1256)
|
89
|
+
- `break` semantics are now correct, except for the case in which a lambda containing a `break` is passed to a `yield` (#1250)
|
90
|
+
- Avoid double "/" when `Opal::Sprockets.javascript_include_tag` receives a prefix with a trailing slash.
|
91
|
+
- Fixed context of evaluation for `Kernel#eval` and `BasicObject#instance_eval`
|
92
|
+
- Fix `Module#===` to use all ancestors of the passed object (#1284)
|
93
|
+
- Fix `Struct.new` to be almost compatible with Rubyspec (#1251)
|
94
|
+
- Fix `Enumerator#with_index` to return the result of the previously called method.
|
95
|
+
- Improved `Date.parse` to cover most date formatting cases.
|
96
|
+
- Fixed `Module#const_get` for dynamically created constants.
|
97
|
+
- Fixed `File.dirname` to return joined String instead of Array.
|
98
|
+
- Fixed multiple assignment for constants, i.e., allowing `A, B = 1, 2`.
|
99
|
+
- Fixed `Number#[]` with negative number. Now `(-1)[1]` returns 1.
|
100
|
+
- Fixed parsing of pre-defined `$-?` global variables.
|
101
|
+
- Fixed parsing of unicode constants.
|
102
|
+
- Fixed parsing of quoted heredoc identifier.
|
103
|
+
- Fixed parsing of mass assignment of method call without parentheses.
|
104
|
+
- Fixed parsing of `%I{}` lists.
|
105
|
+
- Fixed parsing of `%{}` lists when list item contains same brackets.
|
106
|
+
- Fixed an issue with `"-"` inside the second arg of `String#tr`
|
107
|
+
- Fixed Base64 and enabled specs
|
45
108
|
|
46
|
-
* `Numeric` semantics are now compliant with Ruby.
|
47
109
|
|
48
|
-
|
110
|
+
### Removed
|
49
111
|
|
50
|
-
|
112
|
+
- Remove support for configuring Opal via `Opal::Processor`, the correct place is `Opal::Config`
|
113
|
+
- Remove `Opal.process` which used to be an alias to `Sprockets::Environment#[]`
|
51
114
|
|
52
|
-
* `Opal::Sprockets.javascript_include_tag` has been add to allow easy debug mode (i.e. with source maps) when including a sprockets asset into an HTML page.
|
53
115
|
|
54
|
-
* `Opal::Processor.load_asset_code(sprockets, name)` has been deprecated in favor of `Opal::Sprockets.load_asset(name, sprockets)`.
|
55
116
|
|
56
|
-
* `Struct#hash` now works properly based on struct contents
|
57
117
|
|
58
|
-
|
118
|
+
## [0.9.2] - 2016-01-10
|
119
|
+
|
120
|
+
|
121
|
+
### Fixed
|
122
|
+
- Rebuilt the gem with Ruby 2.2 as building with 2.3 would make the gem un-installable
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
## [0.9.1] - 2016-01-09
|
128
|
+
|
129
|
+
|
130
|
+
### Fixed
|
131
|
+
- Backport rack2 compatibility (#1260)
|
132
|
+
- Fixed issue with JS nil return paths being treated as true (#1274)
|
133
|
+
- Fix using more than two `rescue` in sequence (#1269)
|
59
134
|
|
60
|
-
* Newly compliant with RubySpec:
|
61
|
-
* `Enumerable#chunk`
|
62
|
-
* `Enumerable#each_cons`
|
63
|
-
* `Enumerable#minmax`
|
64
|
-
* `Range#to_a` (#1246)
|
65
|
-
* `Module` comparison methods: `#<` `#<=` `#<=>` `#>` `#>=`
|
66
135
|
|
67
|
-
* Operator methods (e.g. `+`, `<`, etc.) can be handled by `method_missing`
|
68
136
|
|
69
|
-
* `OpenStruct` - fixed `#method missing`, `#inspect`, `#to_s`, `#delete_field`. Fully compliant except for frozen and marshal behavior.
|
70
137
|
|
71
|
-
|
138
|
+
## [0.9.0] - 2015-12-20
|
72
139
|
|
73
|
-
* `Kernel#raise` now properly re-raises exceptions (regardless of how many levels deep you are) and works properly if supplied a class that has an exception method.
|
74
140
|
|
75
|
-
|
141
|
+
### Added
|
76
142
|
|
77
|
-
|
143
|
+
- A `console` wrapper has been added to the stdlib, requiring it will make available the `$console` global variable.
|
144
|
+
- `method_added`, `method_removed` and `method_undefined` reflection now works.
|
145
|
+
- `singleton_method_added`, `singleton_method_removed` and `singleton_method_undefined` reflection now works.
|
146
|
+
- Now you can bridge a native class to a Ruby class that inherits from another Ruby class
|
147
|
+
- `Numeric` semantics are now compliant with Ruby.
|
148
|
+
- `Complex` has been fully implemented.
|
149
|
+
- `Rational` has been fully implemented.
|
150
|
+
- `Kernel#raise` now properly re-raises exceptions (regardless of how many levels deep you are) and works properly if supplied a class that has an exception method.
|
151
|
+
- `Exception#exception`, `Exception::exception`, `Exception#message`, and `Exception#to_s` are fully implemented
|
152
|
+
- You can make direct JavaScript method calls on using the `recv.JS.method`syntax. Has support for method calls, final callback (as a block), property getter and setter (via `#[]` and `#[]=`), splats, JavaScript keywords (via the `::JS` module) and global functions (after `require "js"`).
|
153
|
+
- `Set#superset?`, `Set#subset?`, and the respective `proper_` variant of each are now implemented
|
154
|
+
- `NameError` and `NoMethodError` - add `#name` and `#args` attributes
|
155
|
+
- `RegExp#match` now works correctly in multiline mode with white space
|
156
|
+
- `BasicObject#instance_eval` now can accept a string argument (after `require "opal-parser"`)
|
157
|
+
- Adds Nashorn (Java 8+ Javascript engine) runner `bundle exec bin/opal -R nashorn -r nashorn hello.rb`
|
78
158
|
|
79
|
-
|
159
|
+
- Newly compliant with the Ruby Spec Suite:
|
160
|
+
* `Enumerable#chunk`
|
161
|
+
* `Enumerable#each_cons`
|
162
|
+
* `Enumerable#minmax`
|
163
|
+
* `Range#to_a` (#1246)
|
164
|
+
* `Module` comparison methods: `#<` `#<=` `#<=>` `#>` `#>=`
|
165
|
+
- `OpenStruct#method_missing`
|
166
|
+
- `OpenStruct#inspect`
|
167
|
+
- `OpenStruct#to_s`
|
168
|
+
- `OpenStruct#delete_field`
|
80
169
|
|
81
|
-
* `Set#superset?`, `Set#subset?`, and the respective 'proper_' variant of each are now implemented
|
82
170
|
|
83
|
-
|
171
|
+
### Changed
|
84
172
|
|
85
|
-
|
173
|
+
- Renamed:
|
174
|
+
- `Hash.keys` => `Hash.$$keys`
|
175
|
+
- `Hash.map` => `Hash.$$map`
|
176
|
+
- `Hash.smap` => `Hash.$$smap`
|
177
|
+
- `Kernel#pp` no longer forwards arguments directly to `console.log`, this behavior has been replaced by stdlib's own `console.rb` (see above).
|
178
|
+
- `Opal::Sprockets.javascript_include_tag` has been added to allow easy debug mode (i.e. with source maps) when including a sprockets asset into an HTML page.
|
86
179
|
|
87
|
-
* Previously arity checks would raise an error without clearing the block for a method, the could lead to strange bugs in case the error was rescued.
|
88
180
|
|
89
|
-
|
181
|
+
### Deprecated
|
90
182
|
|
91
|
-
|
183
|
+
- `Opal::Processor.load_asset_code(sprockets, name)` has been deprecated in favor of `Opal::Sprockets.load_asset(name, sprockets)`.
|
92
184
|
|
93
|
-
* `Regexp#options` has been optimized and correctly returns 0 when called on a Regexp literal without any options (e.g. //)
|
94
185
|
|
95
|
-
|
186
|
+
### Fixed
|
96
187
|
|
97
|
-
|
188
|
+
- Fixed usage of JavaScript keywords as instance variable names for:
|
189
|
+
- `Kernel#instance_variable_set`
|
190
|
+
- `Kernel#instance_variable_get`
|
191
|
+
- `Kernel#instance_variables`
|
192
|
+
- `Struct#hash` now works properly based on struct contents
|
193
|
+
- No longer crashes when calling a method with an opt arg followed by an optional kwarg when called without the kwarg
|
194
|
+
- Operator methods (e.g. `+`, `<`, etc.) can be handled by `method_missing`
|
195
|
+
- Fix issue where passing a block after a parameter and a hash was causing block to not be passed (e.g. `method1 some_param, 'a' => 1, &block`)
|
196
|
+
- Method defs issued inside `Module#instance_eval` and `Class#instance_eval`, and the respective `exec` now create class methods
|
197
|
+
- Now with enabled arity checks calling a method with more arguments than those supported by its signature raises an `ArgumentError` as well.
|
198
|
+
- Previously arity checks would raise an error without clearing the block for a method, that could lead to strange bugs in case the error was rescued.
|
199
|
+
- `Regexp#===` returns false when the right hand side of the expression cannot be coereced to a string (instead of throwing a `TypeError`)
|
200
|
+
- `Regexp#options` has been optimized and correctly returns 0 when called on a Regexp literal without any options (e.g. `//`)
|
201
|
+
- Fix `Kernel#exit` to allow exit inside `#at_exit`
|
202
|
+
- Fixed a number of syntax errors (e.g. #1224 #1225 #1227 #1231 #1233 #1226)
|
203
|
+
- Fixed `Native()` when used with `Array` instances containing native objects (which weren't wrapped properly) – #1212
|
204
|
+
- Fix `Array#to_n`, `Hash#to_n`, `Struct#to_n` when the object contains native objects (#1249)
|
205
|
+
- Internal cleanup and lots of bugs!
|
98
206
|
|
99
|
-
* Fixed `Native()` when used with `Array` instances containing native objects (which weren't wrapped properly) – #1212
|
100
207
|
|
101
|
-
* Adds Nashorn (Java 8+ Javascript engine) runner `bundle exec bin/opal -R nashorn -r nashorn hello.rb`
|
102
208
|
|
103
|
-
* Fixed a number of syntax errors (e.g. #1224 #1225 #1227 #1231 #1233 #1226)
|
104
209
|
|
105
|
-
|
210
|
+
## [0.8.1] - 2015-10-12
|
106
211
|
|
107
|
-
* Internal cleanup and lots of bugs!
|
108
212
|
|
109
|
-
|
213
|
+
### Removed
|
110
214
|
|
111
|
-
|
215
|
+
- Use official Sprockets processor cache keys API:
|
112
216
|
The old cache key hack has been removed.
|
113
217
|
Add `Opal::Processor.cache_key` and `Opal::Processor.reset_cache_key!` to
|
114
218
|
reset it as it’s cached but should change whenever `Opal::Config` changes.
|
115
219
|
|
116
|
-
|
220
|
+
### Fixed
|
117
221
|
|
118
|
-
|
222
|
+
- Fix an issue for which a Pathname was passed instead of a String to Sprockets.
|
119
223
|
|
120
|
-
* Update to Sprockets v3.0.
|
121
224
|
|
122
|
-
* Delegate dependency management directly to Sprockets (when used) making sourcemaps swift again.
|
123
|
-
This means code generated by sprockets will always need to be bootstrapped via `Opal.load` or `Opal.require`.
|
124
|
-
Luckily `Opal::Processor.load_asset_code(sprockets, name)` does just that in the right way.
|
125
225
|
|
126
|
-
* Enable operator inlining by default in the compiler.
|
127
226
|
|
128
|
-
|
227
|
+
## [0.8.0] - 2015-07-16
|
129
228
|
|
130
|
-
* Update to Sprockets v3.0.
|
131
229
|
|
132
|
-
|
133
|
-
|
134
|
-
|
230
|
+
### Added
|
231
|
+
|
232
|
+
- `Hash[]` implementation fully compliant with rubyspec
|
135
233
|
|
136
|
-
|
234
|
+
- Newly compliant with the Ruby Spec Suite:
|
235
|
+
- `Array#bsearch`
|
236
|
+
- `Array#combination`
|
237
|
+
- `Array#permutation`
|
238
|
+
- `Array#product`
|
239
|
+
- `Array#rotate!`
|
240
|
+
- `Array#rotate`
|
241
|
+
- `Array#sample`
|
242
|
+
- `Array#to_h`
|
243
|
+
- `Array#values_at`
|
244
|
+
- `Array#zip`
|
245
|
+
- `Enumerator#with_index`
|
246
|
+
- `Kernel#===`
|
247
|
+
- `Kernel#Array`
|
248
|
+
- `Kernel#Float`
|
249
|
+
- `Kernel#Hash`
|
250
|
+
- `Kernel#Integer`
|
251
|
+
- `Kernel#String`
|
252
|
+
- `Kernel#format`
|
253
|
+
- `Kernel#sprintf`
|
254
|
+
- `MatchData#==`
|
255
|
+
- `MatchData#eql?`
|
256
|
+
- `MatchData#values_at`
|
257
|
+
- `Module#instance_methods`
|
258
|
+
- `Regexp#match`
|
259
|
+
- `String#%`
|
260
|
+
- `String#===`
|
261
|
+
- `String#==`
|
262
|
+
- `String#[]`
|
263
|
+
- `String#each_line`
|
264
|
+
- `String#eql?`
|
265
|
+
- `String#index`
|
266
|
+
- `String#inspect`
|
267
|
+
- `String#lines`
|
268
|
+
- `String#match`
|
269
|
+
- `String#next`
|
270
|
+
- `String#oct`
|
271
|
+
- `String#scan`
|
272
|
+
- `String#slice`
|
273
|
+
- `String#split`
|
274
|
+
- `String#succ`
|
275
|
+
- `String#to_i`
|
276
|
+
- `String#try_convert`
|
137
277
|
|
138
|
-
* Fix `Promise#always`.
|
139
278
|
|
140
|
-
|
279
|
+
### Changed
|
141
280
|
|
142
|
-
|
281
|
+
- Updated to Sprockets v3.0.
|
282
|
+
- Enable operator inlining by default in the compiler.
|
143
283
|
|
144
|
-
* `Hash[]` implementation fully compliant with rubyspec
|
145
284
|
|
146
|
-
|
285
|
+
### Removed
|
147
286
|
|
148
|
-
|
149
|
-
well as assoc args.
|
287
|
+
- Removed `minitest` from stdlib. It's not part of MRI and it never belonged there, checkout the `opal-minitest` gem instead.
|
150
288
|
|
151
|
-
* Parser: Fix parsing of parens following divide operator without a
|
152
|
-
space.
|
153
289
|
|
154
|
-
|
155
|
-
|
290
|
+
### Fixed
|
291
|
+
|
292
|
+
- Delegate dependency management directly to Sprockets (when used) making sourcemaps swift again.
|
293
|
+
This means code generated by sprockets will always need to be bootstrapped via `Opal.load` or `Opal.require`.
|
294
|
+
Luckily `Opal::Processor.load_asset_code(sprockets, name)` does just that in the right way.
|
295
|
+
- Fix `Promise#always`.
|
296
|
+
- Fix `String#split` when no match is found and a limit is provided
|
297
|
+
- Fix `require_tree(".")` when used from file at the root of the assets paths
|
298
|
+
- Parser: Allow trailing comma in paren arglists, after normal args as well as assoc args.
|
299
|
+
- Parser: Fix parsing of parens following divide operator without a space.
|
300
|
+
- Parser: Fix bug where keyword arguments could not be parsed if method definition did not have parens around arguments.
|
301
|
+
- `Module#const_get` now accepts a scoped constant name
|
302
|
+
- `Regexp#===` sets global match data vars
|
156
303
|
|
157
|
-
* Newly compliant with RubySpec:
|
158
|
-
* `Array#bsearch`
|
159
|
-
* `Array#combination`
|
160
|
-
* `Array#permutation`
|
161
|
-
* `Array#product`
|
162
|
-
* `Array#rotate!`
|
163
|
-
* `Array#rotate`
|
164
|
-
* `Array#sample`
|
165
|
-
* `Array#to_h`
|
166
|
-
* `Array#values_at`
|
167
|
-
* `Array#zip`
|
168
|
-
* `Enumerator#with_index`
|
169
|
-
* `Kernel#===`
|
170
|
-
* `Kernel#Array`
|
171
|
-
* `Kernel#Float`
|
172
|
-
* `Kernel#Hash`
|
173
|
-
* `Kernel#Integer`
|
174
|
-
* `Kernel#String`
|
175
|
-
* `Kernel#format`
|
176
|
-
* `Kernel#sprintf`
|
177
|
-
* `MatchData#==`
|
178
|
-
* `MatchData#eql?`
|
179
|
-
* `MatchData#values_at`
|
180
|
-
* `Module#instance_methods`
|
181
|
-
* `Regexp#match`
|
182
|
-
* `String#%`
|
183
|
-
* `String#===`
|
184
|
-
* `String#==`
|
185
|
-
* `String#[]`
|
186
|
-
* `String#each_line`
|
187
|
-
* `String#eql?`
|
188
|
-
* `String#index`
|
189
|
-
* `String#inspect`
|
190
|
-
* `String#lines`
|
191
|
-
* `String#match`
|
192
|
-
* `String#next`
|
193
|
-
* `String#oct`
|
194
|
-
* `String#scan`
|
195
|
-
* `String#slice`
|
196
|
-
* `String#split`
|
197
|
-
* `String#succ`
|
198
|
-
* `String#to_i`
|
199
|
-
* `String#try_convert`
|
200
304
|
|
201
|
-
* Misc corelib fixes:
|
202
|
-
* `Module#const_get` accepts a scoped constant name
|
203
|
-
* `Regexp#===` sets global match data vars
|
204
305
|
|
205
|
-
## 0.7.2 2015-04-23
|
206
306
|
|
207
|
-
* Remove Sprockets 3.0 support (focus moved to upcoming 0.8)
|
208
307
|
|
209
|
-
|
308
|
+
## [0.7.2] - 2015-04-23
|
210
309
|
|
211
|
-
|
310
|
+
- Remove Sprockets 3.0 support (focus moved to upcoming 0.8)
|
311
|
+
- Fix version number consistency.
|
212
312
|
|
213
|
-
* CLI options `-d` and `-v` now set respectively `$DEBUG` and `$VERBOSE`
|
214
313
|
|
215
|
-
|
314
|
+
## [0.7.1] - 2015-02-14
|
216
315
|
|
217
|
-
|
316
|
+
- CLI options `-d` and `-v` now set respectively `$DEBUG` and `$VERBOSE`
|
317
|
+
- Fixed a bug that would make the `-v` CLI option wait for STDIN input
|
318
|
+
- Add the `-E` / `--no-exit` CLI option to skip implicit `Kernel#exit` call
|
319
|
+
- Now the CLI implicitly calls `Kernel#exit` at the end of the script, thus making `at_exit` blocks be respected.
|
218
320
|
|
219
|
-
* Now the CLI implicitly calls `Kernel#exit` at the end of the script, thus making `at_exit` blocks be respected.
|
220
321
|
|
221
|
-
## 0.7.0 2015-02-01
|
322
|
+
## [0.7.0] - 2015-02-01
|
222
323
|
|
223
|
-
|
324
|
+
- Stop keyword-arg variable names leaking to global javascript scope
|
224
325
|
|
225
|
-
|
326
|
+
- `Class#native_class` now also exposes `MyClass.new` (Ruby) as `Opal.global.MyClass.new()` (JS)
|
226
327
|
|
227
|
-
|
328
|
+
- Add CRuby (MRI) tests harness to start checking Opal against them too.
|
228
329
|
|
229
|
-
|
330
|
+
- Add Minitest to the stdlib.
|
230
331
|
|
231
|
-
|
332
|
+
- Add `Date#<=>` with specs.
|
232
333
|
|
233
|
-
|
334
|
+
- Show extended info and context upon parsing, compiling and building errors.
|
234
335
|
|
235
|
-
|
336
|
+
- Support keyword arguments in method calls and definitions.
|
236
337
|
|
237
|
-
|
338
|
+
- Fix `begin`/`rescue` blocks to evaluate to last expression.
|
238
339
|
|
239
|
-
|
340
|
+
- Add support for `RUBY_ENGINE/RUBY_PLATFORM != "opal"` pre-processor directives.
|
240
341
|
|
241
342
|
if RUBY_ENGINE != "opal"
|
242
343
|
# this code never compiles
|
243
344
|
end
|
244
345
|
|
245
|
-
|
346
|
+
- Fix donating methods defined in modules. This ensures that if a class includes more than one module, then the methods defined on the class respect the order in which the modules are included.
|
246
347
|
|
247
|
-
|
348
|
+
- Improved support for recursive `Hash` for both `#inspect` and `#hash`.
|
248
349
|
|
249
|
-
|
350
|
+
- Optimized `Hash` implementation for `String` and `Symbol`, they have a separate hash-table in which they're used as both keys and hashes.
|
250
351
|
|
251
|
-
|
352
|
+
- Added real `#hash` / `eql?` support, previously was relying on `.toString()`.
|
252
353
|
|
253
|
-
|
354
|
+
- `String#to_proc` now uses `__send__` instead of `send` for calling
|
254
355
|
methods on receivers.
|
255
356
|
|
256
|
-
|
357
|
+
- Deprecated `Opal::Sprockets::Environment`. It can easily be replaced by `Opal::Server` or by appending `Opal.paths` to a `Sprockets::Environment`:
|
257
358
|
|
258
359
|
Sprockets::Environment.new.tap { |e| Opal.paths.each {|p| e.append_path(p)} }
|
259
360
|
|
260
|
-
|
361
|
+
- Add `Set` methods `#classify`, `#collect!`, `#map!`, `#subtract` `#replace`,
|
261
362
|
`#difference` and `#eql?`
|
262
363
|
|
263
|
-
|
364
|
+
- Support `module_function` without args to toggle module functions.
|
264
365
|
|
265
|
-
|
366
|
+
- Fix bug where command calls with no space and sym arg were incorrectly parsed.
|
266
367
|
|
267
|
-
|
368
|
+
- Add some `StringScanner` methods.
|
268
369
|
|
269
|
-
|
370
|
+
- Add `Date#<<` and `Date#>>` implementations.
|
270
371
|
|
271
|
-
|
372
|
+
- Support nested directories using `require_tree` directive.
|
272
373
|
|
273
|
-
|
374
|
+
- Fix bug where Exception subclasses could not have methods defined on them.
|
274
375
|
|
275
|
-
|
376
|
+
- Fix symbols with interpolations `:"#{foo}"`
|
276
377
|
|
277
|
-
|
378
|
+
- Implement $1..N matchers and rewrite support for $~, $', $& and $\`.
|
278
379
|
|
279
|
-
|
380
|
+
- Implement `Regexp.last_match`.
|
280
381
|
|
281
|
-
|
382
|
+
- Fixed `-@` unary op. precedence with a numeric and followed by a method call (e.g. `-1.foo` was parsed as `-(1.foo)`)
|
282
383
|
|
283
|
-
|
384
|
+
- `require_relative` (with strings) is now preprocessed, expanded and added to `Compiler#requires`
|
284
385
|
|
285
|
-
|
386
|
+
- Rewritten the require system to respect requires position (previously all the requires were stacked up at the top of the file)
|
286
387
|
|
287
|
-
|
388
|
+
- Implement for-loop syntax
|
288
389
|
|
289
|
-
|
390
|
+
- Add Array#|
|
290
391
|
|
291
|
-
|
392
|
+
- Fix Range.new to raise `ArgumentError` on contructor values that cannot
|
292
393
|
be compared
|
293
394
|
|
294
|
-
|
395
|
+
- Fix compiler bug where Contiguous strings were not getting concatenated.
|
295
396
|
|
296
|
-
|
397
|
+
- Cleanup generated code for constant access. All constant lookups now go through `$scope.get('CONST_NAME')` to produce cleaner code and a unified place for const missing dispatch.
|
297
398
|
|
298
|
-
|
399
|
+
- Remove `const_missing` option from compiler. All constant lookups are now strict.
|
299
400
|
|
300
|
-
|
401
|
+
- Add initial support for Module#autoload.
|
301
402
|
|
302
|
-
|
403
|
+
- Fix `Enumerator#with_index`, `Numeric#round`.
|
303
404
|
|
304
|
-
## 0.6.2 2014-04-25
|
305
405
|
|
306
|
-
|
406
|
+
## [0.6.2] - 2014-04-25
|
307
407
|
|
308
|
-
|
408
|
+
- Added Range#size
|
309
409
|
|
310
|
-
|
410
|
+
- `opal` executable now reads STDIN when no file or `-e` are passed
|
311
411
|
|
312
|
-
|
412
|
+
- `opal` executable doesn't exit after showing version on `-v` if other options are passed
|
313
413
|
|
314
|
-
|
414
|
+
- (Internal) improved the mspec runner
|
315
415
|
|
316
|
-
* Updated RubySpecs to master and added `rubysl-*` specs. Thanks to Mike Owens (@mieko)
|
317
416
|
|
318
|
-
|
417
|
+
## [0.6.1] - 2014-04-15
|
418
|
+
|
419
|
+
- Updated RubySpec to master and added `rubysl-*` specs. Thanks to Mike Owens (@mieko)
|
420
|
+
|
421
|
+
- Added `Kernel#require_remote(url)` in `opal-parser` that requires files with basic synchronous ajax
|
319
422
|
GET requests. It is used to load `<scripts type="text/ruby" src="…url…">`.
|
320
423
|
|
321
|
-
|
424
|
+
- Various parsing fixes (Hash parsing, `def` returns method name, cleanup `core/util`, Enumerator fixes)
|
322
425
|
|
323
|
-
|
426
|
+
- Added `#native_reader`, `#native_writer` and `#native_accessor`as class methods
|
324
427
|
donated by `include Native`
|
325
428
|
|
326
|
-
|
429
|
+
- Added specs for Sprockets' processors (both .js.rb and .opalerb), backported from `opal-rails`
|
327
430
|
|
328
|
-
|
431
|
+
- Set 2.1.1 as RUBY_VERSION
|
329
432
|
|
330
|
-
|
433
|
+
- Add `opal-build` command utility to easily build libraries to js
|
331
434
|
|
332
|
-
|
435
|
+
- Add `opal-repl` to gemspec executables,
|
333
436
|
previously was only available by using Opal from source
|
334
437
|
|
335
|
-
|
438
|
+
- Fix parsing `=>` in hash literals where it would sometimes incorrectly
|
336
439
|
parse as a key name.
|
337
440
|
|
338
|
-
## 0.6.0 2014-03-05
|
339
441
|
|
340
|
-
|
442
|
+
## [0.6.0] - 2014-03-05
|
443
|
+
|
444
|
+
- Fix parsing of escapes in single-strings ('foo\n'). Only ' and \
|
341
445
|
characters now get escaped in single quoted strings. Also, more escape
|
342
446
|
sequences in double-quoted strings are now supported: `\a`, `\v`, `\f`,
|
343
447
|
`\e`, `\s`, octal (`\314`), hex (`\xff`) and unicode (`\u1234`).
|
344
448
|
|
345
|
-
|
449
|
+
- Sourcemaps revamp. Lexer now tracks column and line info for every token to
|
346
450
|
produce much more accurate sourcemaps. All method calls are now located on
|
347
451
|
the correct source line, and multi-line xstrings are now split to generate
|
348
452
|
a map line-to-line for long inline javascript parts.
|
349
453
|
|
350
|
-
|
454
|
+
- Merged sprockets support from `opal-sprockets` directly into Opal. For the
|
351
455
|
next release, the exernal `opal-sprockets` gem is no longer needed. This
|
352
456
|
commit adds `Opal::Processor`, `Opal::Server` and `Opal::Environment`.
|
353
457
|
|
354
|
-
|
458
|
+
- Introduce pre-processed if directives to hide code from Opal. Two special
|
355
459
|
constant checks now take place in the compiler. Either `RUBY_ENGINE` or
|
356
460
|
`RUBY_PLATFORM` when `== "opal"`. Both if and unless statements can pick
|
357
461
|
up these logic checks:
|
@@ -371,316 +475,397 @@
|
|
371
475
|
This is particularly useful for avoiding `require()` statements being
|
372
476
|
picked up, which are included at compile time.
|
373
477
|
|
374
|
-
|
478
|
+
- Add special `debugger` method to compiler. Compiles down to javascript
|
375
479
|
`debugger` keyword to start in-browser debug console.
|
376
480
|
|
377
|
-
|
481
|
+
- Add missing string escapes to `read_escape` in lexer. Now most ruby escape
|
378
482
|
sequences are properly detected and handled in string parsing.
|
379
483
|
|
380
|
-
|
484
|
+
- Disable escapes inside x-strings. This means no more double escaping all
|
381
485
|
characters in x-strings and backticks. (`\n` => `\n`).
|
382
486
|
|
383
|
-
|
487
|
+
- Add `time.rb` to stdlib and moved `Time.parse()` and `Time.iso8601()`
|
384
488
|
methods there.
|
385
489
|
|
386
|
-
|
490
|
+
- `!` is now treated as an unary method call on the object. Opal now parsed
|
387
491
|
`!` as a def method name, and implements the method on `BasicObject`,
|
388
492
|
`NilClass` and `Boolean`.
|
389
493
|
|
390
|
-
|
494
|
+
- Fixed bug where true/false as object literals from javascript were not
|
391
495
|
correctly being detected as truthy/falsy respectively. This is due to the
|
392
496
|
javascript "feature" where `new Boolean(false) !== false`.
|
393
497
|
|
394
|
-
|
498
|
+
- Moved `native.rb` to stdlib. Native support must now be explicitly required
|
395
499
|
into Opal. `Native` is also now a module, instead of a top level class.
|
396
500
|
Also added `Native::Object#respond_to?`.
|
397
501
|
|
398
|
-
|
502
|
+
- Remove all core `#as_json()` methods from `json.rb`. Added them externally
|
399
503
|
to `opal-activesupport`.
|
400
504
|
|
401
|
-
|
505
|
+
- `Kernel#respond_to?` now calls `#respond_to_missing?` for compliance.
|
402
506
|
|
403
|
-
|
507
|
+
- Fix various `String` methods and add relevant rubyspecs for them. `#chars`,
|
404
508
|
`#to_f`, `#clone`, `#split`.
|
405
509
|
|
406
|
-
|
510
|
+
- Fix `Array` method compliance: `#first`, `#fetch`, `#insert`, `#delete_at`,
|
407
511
|
`#last`, `#splice`, `.try_convert`.
|
408
512
|
|
409
|
-
|
513
|
+
- Fix compliance of `Kernel#extend` and ensure it calls `#extended()` hook.
|
410
514
|
|
411
|
-
|
515
|
+
- Fix bug where sometimes the wrong regexp flags would be generated in the
|
412
516
|
output javascript.
|
413
517
|
|
414
|
-
|
518
|
+
- Support parsing `__END__` constructs in ruby code, inside the lexer. The
|
415
519
|
content is gathered up by use of the parser. The special constant `DATA`
|
416
520
|
is then available inside the ruby code to read the content.
|
417
521
|
|
418
|
-
|
522
|
+
- Support single character strings (using ? prefix) with escaped characters.
|
419
523
|
|
420
|
-
|
524
|
+
- Fix lexer to detect dereferencing on local variables even when whitespace
|
421
525
|
is present (`a = 0; a [0]` parses as a deference on a).
|
422
526
|
|
423
|
-
|
527
|
+
- Fix various `Struct` methods. Fixed `#each` and `#each_pair` to return
|
424
528
|
self. Add `Struct.[]` as synonym for `Struct.new`.
|
425
529
|
|
426
|
-
|
530
|
+
- Implemented some `Enumerable` methods: `#collect_concat`, `#flat_map`,
|
427
531
|
`#reject`, `#reverse_each`, `#partition` and `#zip`.
|
428
532
|
|
429
|
-
|
533
|
+
- Support any Tilt template for `index_path` in `Opal::Server`. All index
|
430
534
|
files are now run through `Tilt` (now supports haml etc).
|
431
535
|
|
432
|
-
|
536
|
+
- Fix code generation of `op_asgn_1` calls (`foo[val] += 10`).
|
433
537
|
|
434
|
-
|
538
|
+
- Add `base64` to stdlib.
|
435
539
|
|
436
|
-
|
540
|
+
- Add promises implementation to stdlib.
|
437
541
|
|
438
|
-
|
542
|
+
- Add `Math` module to corelib.
|
439
543
|
|
440
|
-
|
544
|
+
- Use `//#` instead of `//@` deprecated syntax for sourceMappingURL.
|
441
545
|
|
442
|
-
|
546
|
+
- Implicitly require `erb` from stdlib when including erb templates.
|
443
547
|
|
444
|
-
|
548
|
+
- Fix `Regexp.escape` to also escape '(' character.
|
445
549
|
|
446
|
-
|
550
|
+
- Support '<' and '>' as matching pairs in string boundrys `%q<hi>`.
|
447
551
|
|
448
|
-
|
552
|
+
- `Opal::Server` no longer searches for an index file if not specified.
|
449
553
|
|
450
|
-
|
554
|
+
- Move `Math` and `Encoding` to stdlib. Can be required using
|
451
555
|
`require 'math'`, etc.
|
452
556
|
|
453
|
-
|
557
|
+
- Fix some stdlib `Date` methods.
|
558
|
+
|
559
|
+
- Fix `Regexp.escape` to properly escape \n, \t, \r, \f characters.
|
454
560
|
|
455
|
-
|
561
|
+
- Add `Regexp.quote` as an alias of `escape`.
|
456
562
|
|
457
|
-
* Add `Regexp.quote` as an alias of `escape`.
|
458
563
|
|
459
|
-
## 0.5.5 2013-11-25
|
564
|
+
## [0.5.5] - 2013-11-25
|
460
565
|
|
461
|
-
|
566
|
+
- Fix regression: add `%i[foo bar]` style words back to lexer
|
462
567
|
|
463
|
-
|
568
|
+
- Move corelib from `opal/core` to `opal/corelib`. This stops files in
|
464
569
|
`core/` clashing with user files.
|
465
570
|
|
466
|
-
## 0.5.4 2013-11-20
|
467
571
|
|
468
|
-
|
572
|
+
## [0.5.4] - 2013-11-20
|
573
|
+
|
574
|
+
- Reverted `RUBY_VERSION` to `1.9.3`. Opal `0.6.0` will be the first release
|
469
575
|
for `2.0.0`.
|
470
576
|
|
471
|
-
## 0.5.3 2013-11-12
|
472
577
|
|
473
|
-
|
578
|
+
## [0.5.3] - 2013-11-12
|
579
|
+
|
580
|
+
- Opal now targets ruby 2.0.0
|
474
581
|
|
475
|
-
|
582
|
+
- Named function inside class body now generates with `$` prefix, e.g.
|
476
583
|
`$MyClass`. This makes it easier to wrap/bridge native functions.
|
477
584
|
|
478
|
-
|
585
|
+
- Support Array subclasses
|
586
|
+
|
587
|
+
- Various fixes to `String`, `Kernel` and other core classes
|
479
588
|
|
480
|
-
|
589
|
+
- Fix `Method#call` to use correct receiver
|
481
590
|
|
482
|
-
|
591
|
+
- Fix `Module#define_method` to call `#to_proc` on explicit argument
|
483
592
|
|
484
|
-
|
593
|
+
- Fix `super()` dispatches on class methods
|
485
594
|
|
486
|
-
|
595
|
+
- Support `yield()` calls from inside a block (inside a method)
|
487
596
|
|
488
|
-
|
597
|
+
- Cleanup string parsing inside lexer
|
489
598
|
|
490
|
-
|
599
|
+
- Cleanup parser/lexer to use `t` and `k` prefixes for all tokens
|
491
600
|
|
492
|
-
* Cleanup parser/lexer to use `t` and `k` prefixes for all tokens
|
493
601
|
|
494
|
-
## 0.5.2 2013-11-11
|
602
|
+
## [0.5.2] - 2013-11-11
|
495
603
|
|
496
|
-
|
604
|
+
- Include native into corelib for 0.5.x
|
497
605
|
|
498
|
-
## 0.5.1 2013-11-10
|
499
606
|
|
500
|
-
|
607
|
+
## [0.5.1] - 2013-11-10
|
608
|
+
|
609
|
+
- Move all corelib under `core/` directory to prevent filename clashes with
|
501
610
|
`require`
|
502
611
|
|
503
|
-
|
612
|
+
- Move `native.rb` into stdlib - must now be explicitly required
|
613
|
+
|
614
|
+
- Implement `BasicObject#__id__`
|
615
|
+
|
616
|
+
- Cleanup and fix various `Enumerable` methods
|
504
617
|
|
505
|
-
* Implement `BasicObject#__id__`
|
506
618
|
|
507
|
-
|
619
|
+
## [0.5.0] - 2013-11-03
|
508
620
|
|
509
|
-
|
621
|
+
- WIP: https://gist.github.com/elia/7747460
|
510
622
|
|
511
|
-
* WIP: https://gist.github.com/elia/7747460
|
512
623
|
|
513
|
-
## 0.4.2 2013-07-03
|
624
|
+
## [0.4.2] - 2013-07-03
|
514
625
|
|
515
|
-
|
626
|
+
- Added `Kernel#rand`. (fntzr)
|
516
627
|
|
517
|
-
|
628
|
+
- Restored the `bin/opal` executable in gemspec.
|
518
629
|
|
519
|
-
|
630
|
+
- Now `.valueOf()` is used in `#to_n` of Boolean, Numeric, Regexp and String
|
520
631
|
to return the naked JavaScript value instead of a wrapping object.
|
521
632
|
|
522
|
-
|
633
|
+
- Parser now wraps or-ops in paranthesis to stop variable order from
|
523
634
|
leaking out when minified by uglify. We now have code in this
|
524
635
|
format: `(((tmp = lhs) !== false || !==nil) ? tmp : rhs)`.
|
525
636
|
|
526
|
-
## 0.4.1 2013-06-16
|
527
637
|
|
528
|
-
|
638
|
+
## [0.4.1] - 2013-06-16
|
639
|
+
|
640
|
+
- Move sprockets logic out to external opal-sprockets gem. That now
|
529
641
|
handles the compiling and loading of opal files in sprockets.
|
530
642
|
|
531
|
-
## 0.4.0 2013-06-15
|
532
643
|
|
533
|
-
|
644
|
+
## [0.4.0] - 2013-06-15
|
645
|
+
|
646
|
+
- Added fragments to parser. All parser methods now generate one or
|
534
647
|
more Fragments which store the original sexp. This allows us to
|
535
648
|
enumerate over them after parsing to map generated lines back to
|
536
649
|
original line numbers.
|
537
650
|
|
538
|
-
|
651
|
+
- Reverted `null` for `nil`. Too buggy at this time.
|
539
652
|
|
540
|
-
|
653
|
+
- Add Opal::SprocketsParser as Parser subclass for handling parsing
|
541
654
|
for sprockets environment. This subclass handles require statements
|
542
655
|
and stores them for sprockets to use.
|
543
656
|
|
544
|
-
|
657
|
+
- Add :irb option to parser to keep top level lvars stored inside
|
545
658
|
opal runtime so that an irb session can be persisted and maintain
|
546
659
|
access to local variables.
|
547
660
|
|
548
|
-
|
661
|
+
- Add Opal::Environment#use_gem() helper to add a gem to opals load
|
549
662
|
path.
|
550
663
|
|
551
|
-
|
664
|
+
- Stop pre-setting ivars to `nil`. This is no longer needed as `nil`
|
552
665
|
is now `null` or `undefined`.
|
553
666
|
|
554
|
-
|
667
|
+
- Use `null` as `nil` in opal. This allows us to send methods to
|
555
668
|
`null` and `undefined`, and both act as `nil`. This makes opal a
|
556
669
|
much better javascript citizen. **REVERTED**
|
557
670
|
|
558
|
-
|
671
|
+
- Add Enumerable#none? with specs.
|
559
672
|
|
560
|
-
|
673
|
+
- Add Opal.block_send() runtime helper for sending methods to an
|
561
674
|
object which uses a block.
|
562
675
|
|
563
|
-
|
676
|
+
- Remove \_klass variable for denoting ruby classes, and use
|
564
677
|
constructor instead. constructor is a javascript property used for
|
565
678
|
the same purpose, and this makes opal fit in as a better js citizen.
|
566
679
|
|
567
|
-
|
680
|
+
- Add Class.bridge\_class method to bridge a native constructor into an
|
568
681
|
opal class which will set it up with all methods from Object, as
|
569
682
|
well as giving it a scope and name.
|
570
683
|
|
571
|
-
|
684
|
+
- Added native #[]= and #to_h methods, for setting properties and
|
572
685
|
converting to a hash respectivaly.
|
573
686
|
|
574
|
-
|
687
|
+
- Fix bug where '::' was parsed as :colon2 instead of :colon3 when in
|
575
688
|
an args scope. Fixes #213
|
576
689
|
|
577
|
-
|
690
|
+
- Remove lots of properties added to opal classes. This makes normal
|
578
691
|
js constructors a lot closer to opal classes, making is easier to
|
579
692
|
treat js classes as opal classes.
|
580
693
|
|
581
|
-
|
694
|
+
- Merge Hash.from_native into Hash.new
|
695
|
+
|
582
696
|
|
583
|
-
## 0.3.44 2013-05-31
|
697
|
+
## [0.3.44] - 2013-05-31
|
584
698
|
|
585
|
-
|
699
|
+
- Cleanup runtime, and remove various flags and functions from opal
|
586
700
|
objects and classes (moving them to runtime methods).
|
587
701
|
|
588
|
-
|
702
|
+
- Remove some activesupport methods into external lib.
|
589
703
|
|
590
|
-
|
704
|
+
- Add/fix lots of String methods, with specs.
|
591
705
|
|
592
|
-
|
706
|
+
- Add more methods to MatchData class.
|
593
707
|
|
594
|
-
|
708
|
+
- Implement $' and $` variables.
|
595
709
|
|
596
|
-
|
710
|
+
- Opal can now call methods on all native objects, via method missing
|
597
711
|
dispatcher.
|
598
712
|
|
599
|
-
|
713
|
+
- Add Opal::Environment as custom sprockets subclass which adds all
|
600
714
|
opal load paths automatically.
|
601
715
|
|
602
|
-
## 0.3.43 2013-05-02
|
603
716
|
|
604
|
-
|
717
|
+
## [0.3.43] - 2013-05-02
|
718
|
+
|
719
|
+
- Stop inlining respond_to? inside the parser. This now fully respects
|
605
720
|
an object overriding respond_to?.
|
606
721
|
|
607
|
-
|
722
|
+
- Expose `Opal.eval()` function when parser is loaded for parsing
|
608
723
|
and running strings of ruby code.
|
609
724
|
|
610
|
-
|
725
|
+
- Add erb to corelib (as well as compiler to gem lib). ERB files with
|
611
726
|
.opalerb extension will automatically be compiled into Template
|
612
727
|
constant.
|
613
728
|
|
614
|
-
|
729
|
+
- Added some examples into examples/ dir.
|
615
730
|
|
616
|
-
|
731
|
+
- Add Opal.send() javascript function for sending methods to ruby
|
617
732
|
objects.
|
618
733
|
|
619
|
-
|
734
|
+
- Native class for wrapping and interacting with native objects and
|
620
735
|
function calls.
|
621
736
|
|
622
|
-
|
737
|
+
- Add local_storage to stdlib as a basic wrapper around localStorage.
|
623
738
|
|
624
|
-
|
739
|
+
- Make method_missing more performant by reusing same dispatch function
|
625
740
|
instead of reallocating one for each run.
|
626
741
|
|
627
|
-
|
742
|
+
- Fix Kernel#format to work in firefox. String.prototype.replace() had
|
628
743
|
different semantics for empty matching groups which was breaking
|
629
744
|
Kernel#format.
|
630
745
|
|
631
|
-
## 0.3.42 2013-03-21
|
632
746
|
|
633
|
-
|
747
|
+
## [0.3.42] - 2013-03-21
|
748
|
+
|
749
|
+
- Fix/add lots of language specs.
|
634
750
|
|
635
|
-
|
751
|
+
- Seperate sprockets support out to opal-sprockets gem.
|
636
752
|
|
637
|
-
|
753
|
+
- Support %r[foo] style regexps.
|
638
754
|
|
639
|
-
|
755
|
+
- Use mspec to run specs on corelib and runtime. Rubyspecs are now
|
640
756
|
used, where possible to be as compliant as possible.
|
641
757
|
|
642
|
-
## 0.3.41 2013-02-26
|
643
758
|
|
644
|
-
|
759
|
+
## [0.3.41] - 2013-02-26
|
760
|
+
|
761
|
+
- Remove bin/opal - no longer required for building sources.
|
645
762
|
|
646
|
-
|
763
|
+
- Depreceate Opal::Environment. The Opal::Server class provides a better
|
647
764
|
method of using the opal load paths. Opal.paths still stores a list of
|
648
765
|
load paths for generic sprockets based apps to use.
|
649
766
|
|
650
|
-
## 0.3.40 2013-02-23
|
651
767
|
|
652
|
-
|
768
|
+
## [0.3.40] - 2013-02-23
|
769
|
+
|
770
|
+
- Add Opal::Server as an easy to configure rack server for testing and
|
653
771
|
running Opal based apps.
|
654
772
|
|
655
|
-
|
773
|
+
- Added optional arity check mode for parser. When turned on, every method
|
656
774
|
will have code which checks the argument arity. Off by default.
|
657
775
|
|
658
|
-
|
776
|
+
- Exception subclasses now relfect their name in webkit/firefox debuggers
|
659
777
|
to show both their class name and message.
|
660
778
|
|
661
|
-
|
779
|
+
- Add Class#const_set. Trying to access undefined constants by a literal
|
662
780
|
constant will now also raise a NameError.
|
663
781
|
|
664
|
-
## 0.3.39 2013-02-20
|
665
782
|
|
666
|
-
|
783
|
+
## [0.3.39] - 2013-02-20
|
784
|
+
|
785
|
+
- Fix bug where methods defined on a parent class after subclass was defined
|
667
786
|
would not given subclass access to method. Subclasses are now also tracked
|
668
787
|
by superclass, by a private '_inherited' property.
|
669
788
|
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
789
|
+
- Fix bug where classes defined by `Class.new` did not have a constant scope.
|
790
|
+
|
791
|
+
- Move Date out of opal.rb loading, as it is part of stdlib not corelib.
|
792
|
+
|
793
|
+
- Fix for defining methods inside metaclass, or singleton_class scopes.
|
794
|
+
|
795
|
+
|
796
|
+
## [0.3.38] - 2013-02-13
|
797
|
+
|
798
|
+
- Add Native module used for wrapping objects to forward calls as native calls.
|
799
|
+
|
800
|
+
- Support method_missing for all objects. Feature can be enabled/disabled on `Opal::Processor`.
|
801
|
+
|
802
|
+
- Hash can now use any ruby object as a key.
|
803
|
+
|
804
|
+
- Move to Sprockets based building via `Opal::Processor`.
|
805
|
+
|
806
|
+
|
807
|
+
|
808
|
+
|
809
|
+
[0.10.0]: https://github.com/opal/opal/compare/v0.9.2...HEAD
|
810
|
+
[0.9.2]: https://github.com/opal/opal/compare/v0.9.1...v0.9.2
|
811
|
+
[0.9.1]: https://github.com/opal/opal/compare/v0.9.0...v0.9.1
|
812
|
+
[0.9.0]: https://github.com/opal/opal/compare/v0.8.1...v0.9.0
|
813
|
+
[0.8.1]: https://github.com/opal/opal/compare/v0.8.0...v0.8.1
|
814
|
+
[0.8.0]: https://github.com/opal/opal/compare/v0.7.2...v0.8.0
|
815
|
+
[0.7.2]: https://github.com/opal/opal/compare/v0.7.1...v0.7.2
|
816
|
+
[0.7.1]: https://github.com/opal/opal/compare/v0.7.0...v0.7.1
|
817
|
+
[0.7.0]: https://github.com/opal/opal/compare/v0.6.3...v0.7.0
|
818
|
+
[0.6.3]: https://github.com/opal/opal/compare/v0.6.2...v0.6.3
|
819
|
+
[0.6.2]: https://github.com/opal/opal/compare/v0.6.1...v0.6.2
|
820
|
+
[0.6.1]: https://github.com/opal/opal/compare/v0.6.0...v0.6.1
|
821
|
+
[0.6.0]: https://github.com/opal/opal/compare/v0.5.5...v0.6.0
|
822
|
+
[0.5.5]: https://github.com/opal/opal/compare/v0.5.4...v0.5.5
|
823
|
+
[0.5.4]: https://github.com/opal/opal/compare/v0.5.3...v0.5.4
|
824
|
+
[0.5.3]: https://github.com/opal/opal/compare/v0.5.2...v0.5.3
|
825
|
+
[0.5.2]: https://github.com/opal/opal/compare/v0.5.1...v0.5.2
|
826
|
+
[0.5.1]: https://github.com/opal/opal/compare/v0.5.0...v0.5.1
|
827
|
+
[0.5.0]: https://github.com/opal/opal/compare/v0.4.4...v0.5.0
|
828
|
+
[0.4.4]: https://github.com/opal/opal/compare/v0.4.3...v0.4.4
|
829
|
+
[0.4.3]: https://github.com/opal/opal/compare/v0.4.2...v0.4.3
|
830
|
+
[0.4.2]: https://github.com/opal/opal/compare/v0.4.1...v0.4.2
|
831
|
+
[0.4.1]: https://github.com/opal/opal/compare/v0.4.0...v0.4.1
|
832
|
+
[0.4.0]: https://github.com/opal/opal/compare/v0.3.8...v0.4.0
|
833
|
+
[0.3.8]: https://github.com/opal/opal/compare/v0.3.7...v0.3.8
|
834
|
+
[0.3.7]: https://github.com/opal/opal/compare/v0.3.6...v0.3.7
|
835
|
+
[0.3.6]: https://github.com/opal/opal/compare/v0.3.5...v0.3.6
|
836
|
+
[0.3.5]: https://github.com/opal/opal/compare/v0.3.44...v0.3.5
|
837
|
+
[0.3.44]: https://github.com/opal/opal/compare/v0.3.43...v0.3.44
|
838
|
+
[0.3.43]: https://github.com/opal/opal/compare/v0.3.42...v0.3.43
|
839
|
+
[0.3.42]: https://github.com/opal/opal/compare/v0.3.41...v0.3.42
|
840
|
+
[0.3.41]: https://github.com/opal/opal/compare/v0.3.40...v0.3.41
|
841
|
+
[0.3.40]: https://github.com/opal/opal/compare/v0.3.4...v0.3.40
|
842
|
+
[0.3.4]: https://github.com/opal/opal/compare/v0.3.39...v0.3.4
|
843
|
+
[0.3.39]: https://github.com/opal/opal/compare/v0.3.38...v0.3.39
|
844
|
+
[0.3.38]: https://github.com/opal/opal/compare/v0.3.37...v0.3.38
|
845
|
+
[0.3.37]: https://github.com/opal/opal/compare/v0.3.36...v0.3.37
|
846
|
+
[0.3.36]: https://github.com/opal/opal/compare/v0.3.35...v0.3.36
|
847
|
+
[0.3.35]: https://github.com/opal/opal/compare/v0.3.34...v0.3.35
|
848
|
+
[0.3.34]: https://github.com/opal/opal/compare/v0.3.33...v0.3.34
|
849
|
+
[0.3.33]: https://github.com/opal/opal/compare/v0.3.32...v0.3.33
|
850
|
+
[0.3.32]: https://github.com/opal/opal/compare/v0.3.31...v0.3.32
|
851
|
+
[0.3.31]: https://github.com/opal/opal/compare/v0.3.30...v0.3.31
|
852
|
+
[0.3.30]: https://github.com/opal/opal/compare/v0.3.3...v0.3.30
|
853
|
+
[0.3.3]: https://github.com/opal/opal/compare/v0.3.29...v0.3.3
|
854
|
+
[0.3.29]: https://github.com/opal/opal/compare/v0.3.21...v0.3.29
|
855
|
+
[0.3.21]: https://github.com/opal/opal/compare/v0.3.20...v0.3.21
|
856
|
+
[0.3.20]: https://github.com/opal/opal/compare/v0.3.2...v0.3.20
|
857
|
+
[0.3.2]: https://github.com/opal/opal/compare/v0.3.19...v0.3.2
|
858
|
+
[0.3.19]: https://github.com/opal/opal/compare/v0.3.18...v0.3.19
|
859
|
+
[0.3.18]: https://github.com/opal/opal/compare/v0.3.17...v0.3.18
|
860
|
+
[0.3.17]: https://github.com/opal/opal/compare/v0.3.11...v0.3.17
|
861
|
+
[0.3.11]: https://github.com/opal/opal/compare/v0.3.10...v0.3.11
|
862
|
+
[0.3.10]: https://github.com/opal/opal/compare/v0.3.1...v0.3.10
|
863
|
+
[0.3.1]: https://github.com/opal/opal/compare/v0.3.0...v0.3.1
|
864
|
+
[0.3.0]: https://github.com/opal/opal/compare/v0.2.1...v0.3.0
|
865
|
+
[0.2.1]: https://github.com/opal/opal/compare/v0.2.0...v0.2.1
|
866
|
+
[0.2.0]: https://github.com/opal/opal/compare/v0.1.0...v0.2.0
|
867
|
+
[0.1.0]: https://github.com/opal/opal/compare/v0.0.6...v0.1.0
|
868
|
+
[0.0.6]: https://github.com/opal/opal/compare/v0.0.5...v0.0.6
|
869
|
+
[0.0.5]: https://github.com/opal/opal/compare/v0.0.4...v0.0.5
|
870
|
+
[0.0.4]: https://github.com/opal/opal/compare/v0.0.3...v0.0.4
|
871
|
+
[0.0.3]: https://github.com/opal/opal/compare/v0.0.2...v0.0.3
|