opal 0.9.4 → 0.10.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|