opal 1.0.0 → 1.0.5
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/.github/FUNDING.yml +1 -0
- data/.github/workflows/build.yml +85 -0
- data/CHANGELOG.md +50 -6
- data/Gemfile +2 -2
- data/UNRELEASED.md +0 -140
- data/bin/git-submodule-fast-install +49 -0
- data/bin/setup +4 -0
- data/bin/yarn +11 -0
- data/docs/releasing.md +18 -0
- data/lib/opal/cli.rb +4 -1
- data/lib/opal/cli_options.rb +11 -3
- data/lib/opal/cli_runners/chrome.js +1 -1
- data/lib/opal/cli_runners/chrome.rb +2 -2
- data/lib/opal/parser/patch.rb +15 -0
- data/lib/opal/util.rb +11 -48
- data/lib/opal/version.rb +1 -1
- data/opal.gemspec +1 -1
- data/opal/corelib/constants.rb +4 -4
- data/package.json +15 -0
- data/tasks/linting.rake +3 -5
- data/tasks/releasing.rake +2 -2
- data/yarn.lock +244 -0
- metadata +21 -16
- data/.travis.yml +0 -109
- data/appveyor.yml +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3aa0e89c4ec45d23afb8a14072ab0ef24b7d9e8ef2e0771600dd6e06910f9392
|
4
|
+
data.tar.gz: 7f93b034d7ea2c325ae75f0c2fb8d69168ddae340f25a0422b606df4b1e626e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a52c4d4d98020e2e970b299c57b27a8860bc6093a916960fde9399c7fc0f61d58b572159a35859c1337d69e4754b08b0f1561ce76332ed9dd9170186e447ed2
|
7
|
+
data.tar.gz: c0902f840424bc3567a813077034eb3c5d174ba5411f3096dcd7bda877066793bfd598e9ddc35b93d1acdb9ff602216e96a337cea9ac06153e7a418c8904ab9f
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
open_collective: opal
|
@@ -0,0 +1,85 @@
|
|
1
|
+
name: build
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
- "*-stable"
|
8
|
+
- "*/ci-check"
|
9
|
+
pull_request:
|
10
|
+
branches:
|
11
|
+
- master
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
rake:
|
15
|
+
name: ${{ matrix.combo.name || matrix.combo.ruby }}
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
combo:
|
20
|
+
- name: mspec-nodejs
|
21
|
+
ruby: 2.7
|
22
|
+
command: bin/rake mspec_nodejs
|
23
|
+
- name: mspec-chrome
|
24
|
+
ruby: 2.7
|
25
|
+
command: bin/rake mspec_chrome
|
26
|
+
- name: minitest
|
27
|
+
ruby: 2.7
|
28
|
+
command: bin/rake minitest
|
29
|
+
- name: current-ruby
|
30
|
+
ruby: 2.7
|
31
|
+
- name: previous-ruby
|
32
|
+
ruby: 2.6
|
33
|
+
- name: older-ruby
|
34
|
+
ruby: 2.5
|
35
|
+
- name: windows
|
36
|
+
# These two fail because of broken stacktraces on windows: minitest_node_nodejs mspec_nodejs
|
37
|
+
command: bundle exec rake rspec minitest_nodejs
|
38
|
+
ruby: 2.7
|
39
|
+
os: windows-latest
|
40
|
+
- name: lint
|
41
|
+
command: bin/rake lint
|
42
|
+
ruby: 2.7
|
43
|
+
- name: timezone
|
44
|
+
ruby: 2.7
|
45
|
+
|
46
|
+
# Currently failing:
|
47
|
+
# - ruby: truffleruby
|
48
|
+
# - ruby: jruby
|
49
|
+
# - ruby: ruby-head
|
50
|
+
|
51
|
+
runs-on: ${{ matrix.combo.os || 'ubuntu-latest' }}
|
52
|
+
steps:
|
53
|
+
- uses: actions/checkout@v2
|
54
|
+
- uses: ruby/setup-ruby@v1
|
55
|
+
with:
|
56
|
+
ruby-version: ${{ matrix.combo.ruby }}
|
57
|
+
# NOTE: Bundler 2.2.0 fails to install libv8
|
58
|
+
# https://github.com/rubyjs/libv8/issues/310
|
59
|
+
bundler: "2.1.4"
|
60
|
+
bundler-cache: false
|
61
|
+
- run: ruby bin/git-submodule-fast-install
|
62
|
+
- run: bundle lock
|
63
|
+
- uses: actions/cache@v2
|
64
|
+
with:
|
65
|
+
path: ./vendor/bundle
|
66
|
+
key: ${{ runner.os }}-${{ matrix.combo.ruby }}-gems-${{ github.ref }}-${{ hashFiles('**/Gemfile.lock') }}
|
67
|
+
restore-keys: |
|
68
|
+
${{ runner.os }}-${{ matrix.combo.ruby }}-gems-${{ github.ref }}
|
69
|
+
${{ runner.os }}-${{ matrix.combo.ruby }}-gems-1-0-stable
|
70
|
+
${{ runner.os }}-${{ matrix.combo.ruby }}-gems-
|
71
|
+
- uses: actions/cache@v2
|
72
|
+
with:
|
73
|
+
path: ./node_modules
|
74
|
+
key: ${{ runner.os }}-npm-${{ github.ref }}-${{ hashFiles('**/yarn.lock') }}
|
75
|
+
restore-keys: |
|
76
|
+
${{ runner.os }}-npm-${{ github.ref }}
|
77
|
+
${{ runner.os }}-npm-1-0-stable
|
78
|
+
${{ runner.os }}-npm-
|
79
|
+
- run: yarn install
|
80
|
+
- name: bundle install
|
81
|
+
run: |
|
82
|
+
bundle config path $PWD/vendor/bundle
|
83
|
+
bundle install --jobs 4 --retry 3
|
84
|
+
bundle clean
|
85
|
+
- run: ${{ matrix.combo.command || 'bin/rake rspec' }}
|
data/CHANGELOG.md
CHANGED
@@ -15,14 +15,58 @@ Changes are grouped as follows:
|
|
15
15
|
|
16
16
|
|
17
17
|
|
18
|
+
## [1.0.5](https://github.com/opal/opal/compare/v1.0.4...1.0.5) - 2020-12-24
|
19
|
+
|
20
|
+
|
21
|
+
### Fixed
|
22
|
+
|
23
|
+
- [Backported] Add --rbrequire (-q) option to opal cmdline tool ([#2120](https://github.com/opal/opal/pull/2120))
|
24
|
+
- Improved the --help descriptions
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
## [1.0.4](https://github.com/opal/opal/compare/v1.0.3...v1.0.4) - 2020-12-13
|
30
|
+
|
31
|
+
|
32
|
+
### Fixed
|
33
|
+
|
34
|
+
- [Backported] Using the `--map` / `-P` CLI option was only working in conjunction with other options ([#1974](https://github.com/opal/opal/pull/1974))
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
## [1.0.3](https://github.com/opal/opal/compare/v1.0.2...v1.0.3) - 2020-02-01
|
40
|
+
|
41
|
+
|
42
|
+
### Fixed
|
43
|
+
|
44
|
+
- Fixed compiling code with Unicode chars from Opal with opal-parser ([#2074](https://github.com/opal/opal/pull/2074))
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
## [1.0.2](https://github.com/opal/opal/compare/v1.0.1...v1.0.2) - 2019-12-15
|
50
|
+
|
51
|
+
|
52
|
+
- Increase the timeout for starting Chrome within the Chrome runner ([#2037](https://github.com/opal/opal/pull/2037))
|
53
|
+
- Run the Opal code within the body inside Chrome runner, it fixes an issue in opal-rspec ([#2037](https://github.com/opal/opal/pull/2037))
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
## [1.0.1](https://github.com/opal/opal/compare/v1.0.0...v1.0.1) - 2019-12-08
|
59
|
+
|
60
|
+
|
61
|
+
### Changed
|
62
|
+
|
63
|
+
- Relaxed parser version requirement ([#2013](https://github.com/opal/opal/pull/2013))
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
18
68
|
## [1.0.0](https://github.com/opal/opal/compare/v0.11.4...v1.0.0) - 2019-05-12
|
19
69
|
|
20
|
-
<!--
|
21
|
-
Whitespace conventions:
|
22
|
-
- 4 spaces before ## titles
|
23
|
-
- 2 spaces before ### titles
|
24
|
-
- 1 spaces before normal text
|
25
|
-
-->
|
26
70
|
|
27
71
|
### Added
|
28
72
|
|
data/Gemfile
CHANGED
@@ -48,8 +48,8 @@ end unless ENV['CI']
|
|
48
48
|
|
49
49
|
group :doc do
|
50
50
|
gem 'redcarpet' unless RUBY_ENGINE == 'truffleruby'
|
51
|
-
end
|
51
|
+
end unless ENV['CI']
|
52
52
|
|
53
53
|
platforms :ruby, :mswin, :mswin64, :mingw, :x64_mingw do
|
54
|
-
gem 'c_lexer', '2.
|
54
|
+
gem 'c_lexer', '~> 2.6' unless RUBY_ENGINE == 'truffleruby'
|
55
55
|
end
|
data/UNRELEASED.md
CHANGED
@@ -1,141 +1 @@
|
|
1
|
-
<!--
|
2
|
-
Whitespace conventions:
|
3
|
-
- 4 spaces before ## titles
|
4
|
-
- 2 spaces before ### titles
|
5
|
-
- 1 spaces before normal text
|
6
|
-
-->
|
7
1
|
|
8
|
-
### Added
|
9
|
-
|
10
|
-
- Added `Module#prepend` and completely overhauled the module and class inheritance system (#1826)
|
11
|
-
- Methods and properties are now assigned with `Object.defineProperty()` as non-enumerable (#1821)
|
12
|
-
- Backtrace now includes the location inside the source file for syntax errors (#1814)
|
13
|
-
- Added support for a faster C-implemented lexer, it's enough to add `gem 'c_lexer` to the `Gemfile` (#1806)
|
14
|
-
- Added `Date#to_n` that returns the JavaScript Date object (in native.rb). (#1779, #1792)
|
15
|
-
- Added `Array#pack` (supports only `C, S, L, Q, c, s, l, q, A, a` formats). (#1723)
|
16
|
-
- Added `String#unpack` (supports only `C, S, L, Q, S>, L>, Q>, c, s, l, q, n, N, v, V, U, w, A, a, Z, B, b, H, h, u, M, m` formats). (#1723)
|
17
|
-
- Added `File#symlink?` for Node.js. (#1725)
|
18
|
-
- Added `Dir#glob` for Node.js (does not support flags). (#1727)
|
19
|
-
- Added support for a static folder in the "server" CLI runner via the `OPAL_CLI_RUNNERS_SERVER_STATIC_FOLDER` env var
|
20
|
-
- Added the CLI option `--runner-options` that allows passing arbitrary options to the selected runner, currently the only runner making use of them is `server` accepting `port` and `static_folder`
|
21
|
-
- Added a short helper to navigate constants manually: E.g. `Opal.$$.Regexp.$$.IGNORECASE` (see docs for "Compiled Ruby")
|
22
|
-
- Added initial support for OpenURI module (using XMLHttpRequest on browser and [xmlhttprequest](https://www.npmjs.com/package/xmlhttprequest) on Node). (#1735)
|
23
|
-
- Added `String#prepend` to the list of unsupported methods (because String are immutable in JavaScript)
|
24
|
-
- Added methods (most introduced in 2.4/2.5):
|
25
|
-
* `Array#prepend` (#1757)
|
26
|
-
* `Array#append` (#1757)
|
27
|
-
* `Array#max` (#1757)
|
28
|
-
* `Array#min` (#1757)
|
29
|
-
* `Complex#finite?` (#1757)
|
30
|
-
* `Complex#infinite?` (#1757)
|
31
|
-
* `Complex#infinite?` (#1757)
|
32
|
-
* `Date#to_time` (#1757)
|
33
|
-
* `Date#next_year` (#1885)
|
34
|
-
* `Date#prev_year` (#1885)
|
35
|
-
* `Hash#slice` (#1757)
|
36
|
-
* `Hash#transform_keys` (#1757)
|
37
|
-
* `Hash#transform_keys!` (#1757)
|
38
|
-
* `Numeric#finite?` (#1757)
|
39
|
-
* `Numeric#infinite?` (#1757)
|
40
|
-
* `Numeric#infinite?` (#1757)
|
41
|
-
* `Integer#allbits?` (#1757)
|
42
|
-
* `Integer#anybits?` (#1757)
|
43
|
-
* `Integer#digits` (#1757)
|
44
|
-
* `Integer#nobits?` (#1757)
|
45
|
-
* `Integer#pow` (#1757)
|
46
|
-
* `Integer#remainder` (#1757)
|
47
|
-
* `Integer.sqrt` (#1757)
|
48
|
-
* `Random.urandom` (#1757)
|
49
|
-
* `String#delete_prefix` (#1757)
|
50
|
-
* `String#delete_suffix` (#1757)
|
51
|
-
* `String#casecmp?` (#1757)
|
52
|
-
* `Kernel#yield_self` (#1757)
|
53
|
-
* `String#unpack1` (#1757)
|
54
|
-
* `String#to_r` (#1842)
|
55
|
-
* `String#to_c` (#1842)
|
56
|
-
* `String#match?` (#1842)
|
57
|
-
* `String#unicode_normalize` returns self (#1842)
|
58
|
-
* `String#unicode_normalized?` returns true (#1842)
|
59
|
-
* `String#[]=` throws `NotImplementedError`(#1836)
|
60
|
-
|
61
|
-
- Added support of the `pattern` argument for `Enumerable#all?`, `Enumerable#any?`, `Enumerable#none?`. (#1757)
|
62
|
-
- Added `ndigits` option support to `Number#floor`, `Number#ceil`, `Number#truncate`. (#1757)
|
63
|
-
- Added `key` and `receiver` attributes to the `KeyError`. (#1757)
|
64
|
-
- Extended `Struct.new` to support `keyword_init` option. (#1757)
|
65
|
-
- Added a new `Opal::Config.missing_require_severity` option and relative `--missing-require` CLI flag. This option will command how the builder will behave when a required file is missing. Previously the behavior was undefined and partly controlled by `dynamic_require_severity`. Not to be confused with the runtime config option `Opal.config.missing_require_severity;` which controls the runtime behavior.
|
66
|
-
- Added `Matrix` (along with the internal MRI utility `E2MM`)
|
67
|
-
- Use shorter helpers for constant lookups, `$$` for relative (nesting) lookups and `$$$` for absolute (qualified) lookups
|
68
|
-
- Add support for the Mersenne Twister random generator, the same used by CRuby/MRI (#657 & #1891)
|
69
|
-
- [Nodejs] Added support for binary data in `OpenURI` (#1911, #1920)
|
70
|
-
- [Nodejs] Added support for binary data in `File#read` (#1919, #1921)
|
71
|
-
- [Nodejs] Added support for `File#readlines` (#1882)
|
72
|
-
- [Nodejs] Added support for `ENV#[]`, `ENV#[]=`, `ENV#key?`, `ENV#has_key?`, `ENV#include?`, `ENV#member?`, `ENV#empty?`, `ENV#keys`, `ENV#delete` and `ENV#to_s` (#1928)
|
73
|
-
|
74
|
-
|
75
|
-
### Changed
|
76
|
-
|
77
|
-
- **BREAKING** The dot (`.`) character is no longer replaced with [\s\S] in a multiline regexp passed to Regexp#match and Regexp#match? (#1796, #1795)
|
78
|
-
* You're advised to always use [\s\S] instead of . in a multiline regexp, which is portable between Ruby and JavaScript
|
79
|
-
- **BREAKING** `Kernel#format` (and `sprintf` alias) are now in a dedicated module `corelib/kernel/format` and available exclusively in `opal` (#1930)
|
80
|
-
* Previously the methods were part of the `corelib/kernel` module and available in both `opal` and `opal/mini`
|
81
|
-
- Filename extensions are no longer stripped from filenames internally, resulting in better error reporting (#1804)
|
82
|
-
- The internal API for CLI runners has changed, now it's just a callable object
|
83
|
-
- The `--map` CLI option now works only in conjunction with `--compile` (or `--runner compiler`)
|
84
|
-
- The `node` CLI runner now adds its `NODE_PATH` entry instead of replacing the ENV var altogether
|
85
|
-
- Added `--disable-web-security` option flag to the Chrome headless runner to be able to do `XMLHttpRequest`
|
86
|
-
- Migrated parser to 2.5. Bump RUBY_VERSION to 2.5.0.
|
87
|
-
- Exceptions raised during the compilation now add to the backtrace the current location of the opal file if available (#1814).
|
88
|
-
- Better use of `displayName` on functions and methods and more readable temp variable names (#1910)
|
89
|
-
- Source-maps are now inlined and already contain sources, incredibly more stable and precise (#1856)
|
90
|
-
|
91
|
-
|
92
|
-
### Deprecated
|
93
|
-
|
94
|
-
- The CLI `--server-port 1234` option is now deprecated in favor of using `--runner-options='{"port": 1234}'`
|
95
|
-
- Including `::Native` is now deprecated because it generates conflicts with core classes in constant lookups (both `Native::Object` and `Native::Array` exist). Instead `Native::Werapper` should be used.
|
96
|
-
- Using `node_require 'my_module'` to access the native `require()` function in Node.js is deprecated in favor of <code>\`require('my_module')\`</code> because static builders need to parse the call in order to function (#1886).
|
97
|
-
|
98
|
-
|
99
|
-
### Removed
|
100
|
-
|
101
|
-
- The `node` CLI runner no longer supports passing extra node options via the `NODE_OPT` env var, instead Node.js natively supports the `NODE_OPTIONS` env var.
|
102
|
-
- The gem "hike" is no longer an external dependency and is now an internal dependency available as `Opal::Hike` (#1881)
|
103
|
-
- Removed the internal Opal class `Marshal::BinaryString` (#1914)
|
104
|
-
- Removed Racc, as it's now replaced by the parser gem (#1880)
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
### Fixed
|
109
|
-
|
110
|
-
- Fix handling of trailing semicolons and JavaScript returns inside x-strings, the behavior is now well defined and covered by proper specs (#1776)
|
111
|
-
- Fixed singleton method definition to return method name. (#1757)
|
112
|
-
- Allow passing number of months to `Date#next_month` and `Date#prev_month`. (#1757)
|
113
|
-
- Fixed `pattern` argument handling for `Enumerable#grep` and `Enumerable#grep_v`. (#1757)
|
114
|
-
- Raise `ArgumentError` instead of `TypeError` from `Numeric#step` when step is not a number. (#1757)
|
115
|
-
- At run-time `LoadError` wasn't being raised even with `Opal.config.missing_require_severity;` set to `'error'`.
|
116
|
-
- Fixed `Kernel#public_methods` to return instance methods if the argument is set to false. (#1848)
|
117
|
-
- Fixed an issue in `String#gsub` that made it start an infinite loop when used recursively. (#1879)
|
118
|
-
- `Kernel#exit` was using status 0 when a number or a generic object was provided, now accepts numbers and tries to convert objects with `#to_int` (#1898, #1808).
|
119
|
-
- Fixed metaclass inheritance in subclasses of Module (#1901)
|
120
|
-
- `Method#to_proc` now correctly sets parameters and arity on the resulting Proc (#1903)
|
121
|
-
- Fixed bridged classes having their prototype removed from the original chain by separating them from the Ruby class (#1909)
|
122
|
-
- Improve `String#to_proc` performance (#1888)
|
123
|
-
- Fixed/updated the examples (#1887)
|
124
|
-
- `Opal.ancestors()` now returns false for when provided with JS-falsy objects (#1839)
|
125
|
-
- When subclassing now the constant is set before calling `::inherited` (#1838)
|
126
|
-
- `String#to_sym` now returns the string literal (#1835)
|
127
|
-
- `String#center` now correctly checks length (#1833)
|
128
|
-
- `redo` inside `while` now works properly (#1820)
|
129
|
-
- Fixed compilation of empty/whitespace-only x-strings (#1811)
|
130
|
-
- Fix `||=` assignments on constants when the constant is not yet defined (#1935)
|
131
|
-
- Fix `String#chomp` to return an empty String when `arg == self` (#1936)
|
132
|
-
- Fix methods of `Comparable` when `<=>` does not return Numeric (#1945)
|
133
|
-
- Fix `Class#native_alias` error message (#1946)
|
134
|
-
- Fix `gmt_offset` (alias `utc_offset`) should return 0 if the date is UTC (#1941)
|
135
|
-
- `exceptionDetails.stackTrace` can be undefined (#1955)
|
136
|
-
- Implement `String#each_codepoint` and `String#codepoints` (#1944, #1947)
|
137
|
-
- [internal] Terminate statement with semi-colon and remove unecessary semi-colon (#1948)
|
138
|
-
- Some steps toward "strict mode" (#1953)
|
139
|
-
- Preserve `Exception.stack`, in some cases the backtrace was lost (#1963)
|
140
|
-
- Make `String#ascii_only?` a little less wrong (#1951)
|
141
|
-
- Minor fixes to `::Native` (#1957)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
def system(*args)
|
4
|
+
puts "== command: #{args.inspect}"
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
def system!(*args)
|
9
|
+
system(*args) or raise "== command failed: #{args.inspect}"
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
Dir.chdir "#{__dir__}/.."
|
14
|
+
Dir.mkdir 'tmp' unless File.directory? 'tmp'
|
15
|
+
|
16
|
+
system 'git submodule --quiet deinit --all -f 2> /dev/null'
|
17
|
+
|
18
|
+
modules = {}
|
19
|
+
`git config -f #{__dir__}/../.gitmodules --list`.lines.each do |line|
|
20
|
+
fullkey, value = line.split('=', 2)
|
21
|
+
_, name, key = fullkey.split('.', 3)
|
22
|
+
modules[name] ||= {}
|
23
|
+
modules[name][key.to_sym] = value.strip
|
24
|
+
end
|
25
|
+
|
26
|
+
`git submodule`.lines.each do |line|
|
27
|
+
sha1, name = line[1..-1].scan(/^(?<sha1>\w+) (?<name>\S+)/).first
|
28
|
+
modules[name][:sha1] = sha1
|
29
|
+
end
|
30
|
+
|
31
|
+
modules.map do |name, config|
|
32
|
+
puts "== installing #{name}..."
|
33
|
+
url, sha1, path = config.values_at(:url, :sha1, :path)
|
34
|
+
dir = File.dirname(path)
|
35
|
+
url.sub!(/\.git$/, '')
|
36
|
+
|
37
|
+
Thread.new do
|
38
|
+
system! "curl -L #{url}/archive/#{sha1}.zip -o #{sha1}.zip"
|
39
|
+
|
40
|
+
system! "unzip -q #{sha1}.zip -d #{dir}"
|
41
|
+
system! "rm #{sha1}.zip"
|
42
|
+
|
43
|
+
system! "rm -rf #{path}" if File.directory? path
|
44
|
+
system! "mv #{dir}/*-#{sha1} #{path}"
|
45
|
+
print "== completed installing #{name}.\n"
|
46
|
+
end
|
47
|
+
end.each(&:join)
|
48
|
+
|
49
|
+
system! 'git submodule init'
|
data/bin/setup
CHANGED
data/bin/yarn
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path('..', __dir__)
|
3
|
+
Dir.chdir(APP_ROOT) do
|
4
|
+
begin
|
5
|
+
exec "yarnpkg", *ARGV
|
6
|
+
rescue Errno::ENOENT
|
7
|
+
$stderr.puts "Yarn executable was not detected in the system."
|
8
|
+
$stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
|
9
|
+
exit 1
|
10
|
+
end
|
11
|
+
end
|
data/docs/releasing.md
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Releasing
|
2
|
+
|
3
|
+
_This guide is a work-in-progress._
|
4
|
+
|
5
|
+
## Updating the version
|
6
|
+
|
7
|
+
- Update `lib/opal/version.rb`
|
8
|
+
- Update `opal/corelib/constants.rb` with the same version number along with release dates
|
9
|
+
|
10
|
+
## Updating the changelog
|
11
|
+
|
12
|
+
- Ensure all the unreleased changes are documented in UNRELEASED.md
|
13
|
+
- Run `bin/rake changelog VERSION=v1.2.3` specifying the version number you're about to release
|
14
|
+
|
15
|
+
## The commit
|
16
|
+
|
17
|
+
- Commit the updated changelog along with the version bump using this commmit message:
|
18
|
+
"Release v1.2.3"
|
data/lib/opal/cli.rb
CHANGED
@@ -7,7 +7,7 @@ require 'opal/cli_runners'
|
|
7
7
|
module Opal
|
8
8
|
class CLI
|
9
9
|
attr_reader :options, :file, :compiler_options, :evals, :load_paths, :argv,
|
10
|
-
:output, :requires, :gems, :stubs, :verbose, :runner_options,
|
10
|
+
:output, :requires, :rbrequires, :gems, :stubs, :verbose, :runner_options,
|
11
11
|
:preload, :filename, :debug, :no_exit, :lib_only, :missing_require_severity
|
12
12
|
|
13
13
|
class << self
|
@@ -37,6 +37,7 @@ module Opal
|
|
37
37
|
@debug = options.delete(:debug) { false }
|
38
38
|
@filename = options.delete(:filename) { @file && @file.path }
|
39
39
|
@requires = options.delete(:requires) { [] }
|
40
|
+
@rbrequires = options.delete(:rbrequires) { [] }
|
40
41
|
|
41
42
|
@missing_require_severity = options.delete(:missing_require_severity) { Opal::Config.missing_require_severity }
|
42
43
|
|
@@ -79,6 +80,8 @@ module Opal
|
|
79
80
|
end
|
80
81
|
|
81
82
|
def create_builder
|
83
|
+
rbrequires.each(&Kernel.method(:require))
|
84
|
+
|
82
85
|
builder = Opal::Builder.new(
|
83
86
|
stubs: stubs,
|
84
87
|
compiler_options: compiler_options,
|
data/lib/opal/cli_options.rb
CHANGED
@@ -58,6 +58,13 @@ module Opal
|
|
58
58
|
options[:requires] << library
|
59
59
|
end
|
60
60
|
|
61
|
+
on('-q', '--rbrequire LIBRARY', String,
|
62
|
+
'Require the library in Ruby context before compiling'
|
63
|
+
) do |library|
|
64
|
+
options[:rbrequires] ||= []
|
65
|
+
options[:rbrequires] << library
|
66
|
+
end
|
67
|
+
|
61
68
|
on('-s', '--stub FILE', String, 'Stubbed files will be compiled as empty files') do |stub|
|
62
69
|
options[:stubs] ||= []
|
63
70
|
options[:stubs] << stub
|
@@ -105,11 +112,11 @@ module Opal
|
|
105
112
|
|
106
113
|
section 'Compilation Options:'
|
107
114
|
|
108
|
-
on('-M', '--no-method-missing', '
|
115
|
+
on('-M', '--no-method-missing', 'Disable method missing') do
|
109
116
|
options[:method_missing] = false
|
110
117
|
end
|
111
118
|
|
112
|
-
on('-O', '--no-opal', '
|
119
|
+
on('-O', '--no-opal', 'Disable implicit `require "opal"`') do
|
113
120
|
options[:skip_opal_require] = true
|
114
121
|
end
|
115
122
|
|
@@ -137,7 +144,8 @@ module Opal
|
|
137
144
|
options[:missing_require_severity] = level.to_sym
|
138
145
|
end
|
139
146
|
|
140
|
-
on('-P', '--map FILE', '
|
147
|
+
on('-P', '--map FILE', 'Output path to FILE') do |file|
|
148
|
+
options[:runner_options] ||= {}
|
141
149
|
options[:runner_options][:map_file] = file
|
142
150
|
end
|
143
151
|
|
@@ -13,9 +13,9 @@ fs.writeFileSync("/tmp/chrome-opal.html", "" +
|
|
13
13
|
"<html>" +
|
14
14
|
"<head>" +
|
15
15
|
"<meta charset='utf-8'>" +
|
16
|
-
"<script src='chrome-opal.js'></script>" +
|
17
16
|
"</head>" +
|
18
17
|
"<body>" +
|
18
|
+
"<script src='./chrome-opal.js'></script>" +
|
19
19
|
"</body>" +
|
20
20
|
"</html>"
|
21
21
|
);
|
data/lib/opal/parser/patch.rb
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
if RUBY_ENGINE == 'opal'
|
4
|
+
class Parser::Lexer
|
5
|
+
def source_buffer=(source_buffer)
|
6
|
+
@source_buffer = source_buffer
|
7
|
+
|
8
|
+
if @source_buffer
|
9
|
+
source = @source_buffer.source
|
10
|
+
# Force UTF8 unpacking even if JS works with UTF-16/UCS-2
|
11
|
+
# See: https://mathiasbynens.be/notes/javascript-encoding
|
12
|
+
@source_pts = source.unpack('U*')
|
13
|
+
else
|
14
|
+
@source_pts = nil
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
4
19
|
class Parser::Lexer::Literal
|
5
20
|
undef :extend_string
|
6
21
|
|
data/lib/opal/util.rb
CHANGED
@@ -6,66 +6,29 @@ module Opal
|
|
6
6
|
module Util
|
7
7
|
extend self
|
8
8
|
|
9
|
+
ExitStatusError = Class.new(StandardError)
|
10
|
+
|
9
11
|
# Used for uglifying source to minify.
|
10
12
|
#
|
11
13
|
# Opal::Util.uglify("javascript contents")
|
12
14
|
#
|
13
15
|
# @param str [String] string to minify
|
14
16
|
# @return [String]
|
15
|
-
def uglify(
|
16
|
-
|
17
|
-
uglifyjs.digest(str)
|
17
|
+
def uglify(source)
|
18
|
+
sh 'bin/yarn -s run uglifyjs -c', data: source
|
18
19
|
end
|
19
20
|
|
20
21
|
# Gzip code to check file size.
|
21
|
-
def gzip(
|
22
|
-
|
23
|
-
gzip.digest(str)
|
22
|
+
def gzip(source)
|
23
|
+
sh 'gzip -f', data: source
|
24
24
|
end
|
25
25
|
|
26
|
-
|
27
|
-
def initialize(command, options, message = nil)
|
28
|
-
@command, @options, @message = command, options, message
|
29
|
-
return unless command_installed? command, message
|
30
|
-
end
|
31
|
-
attr_reader :command, :options, :message
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def hide_stderr
|
36
|
-
if (/mswin|mingw/ =~ RUBY_PLATFORM).nil?
|
37
|
-
'2> /dev/null'
|
38
|
-
else
|
39
|
-
'2> nul'
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Code from http://stackoverflow.com/questions/2108727/which-in-ruby-checking-if-program-exists-in-path-from-ruby
|
44
|
-
def which(cmd)
|
45
|
-
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
46
|
-
ENV['PATH'].split(File::PATH_SEPARATOR).find do |path|
|
47
|
-
exts.find do |ext|
|
48
|
-
exe = File.join(path, "#{cmd}#{ext}")
|
49
|
-
exe if File.executable? exe
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
INSTALLED = {}
|
55
|
-
def command_installed?(cmd, install_comment)
|
56
|
-
command_installed = Command::INSTALLED[cmd.to_s] ||= which(cmd)
|
57
|
-
$stderr.puts %{"#{cmd}" command not found#{install_comment}} unless command_installed
|
58
|
-
command_installed
|
59
|
-
end
|
60
|
-
end
|
26
|
+
private
|
61
27
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
raise ExitStatusError, "exited with status #{status.exitstatus}" unless status.success?
|
67
|
-
out
|
68
|
-
end
|
28
|
+
def sh(command, data:)
|
29
|
+
out, _err, status = Open3.capture3(command, stdin_data: data)
|
30
|
+
raise ExitStatusError, "exited with status #{status.exitstatus}" unless status.success?
|
31
|
+
out
|
69
32
|
end
|
70
33
|
end
|
71
34
|
end
|
data/lib/opal/version.rb
CHANGED
data/opal.gemspec
CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.required_ruby_version = '>= 2.3'
|
37
37
|
|
38
38
|
spec.add_dependency 'ast', '>= 2.3.0'
|
39
|
-
spec.add_dependency 'parser', '
|
39
|
+
spec.add_dependency 'parser', '~> 2.6'
|
40
40
|
|
41
41
|
spec.add_development_dependency 'sourcemap', '~> 0.1.0'
|
42
42
|
spec.add_development_dependency 'rake', '~> 10.0'
|
data/opal/corelib/constants.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
RUBY_PLATFORM = 'opal'
|
2
2
|
RUBY_ENGINE = 'opal'
|
3
|
-
RUBY_VERSION = '2.5.
|
4
|
-
RUBY_ENGINE_VERSION = '1.0.
|
5
|
-
RUBY_RELEASE_DATE = '
|
3
|
+
RUBY_VERSION = '2.5.8'
|
4
|
+
RUBY_ENGINE_VERSION = '1.0.5'
|
5
|
+
RUBY_RELEASE_DATE = '2020-12-24'
|
6
6
|
RUBY_PATCHLEVEL = 0
|
7
7
|
RUBY_REVISION = 0
|
8
|
-
RUBY_COPYRIGHT = 'opal - Copyright (C) 2013-
|
8
|
+
RUBY_COPYRIGHT = 'opal - Copyright (C) 2013-2020 Adam Beynon and the Opal contributors'
|
9
9
|
RUBY_DESCRIPTION = "opal #{RUBY_ENGINE_VERSION} (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION})"
|
data/package.json
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"name": "opal-dev",
|
3
|
+
"private": true,
|
4
|
+
"dependencies": {
|
5
|
+
"benchmark": "^2.1.4",
|
6
|
+
"jshint": "^2.11.0-rc1",
|
7
|
+
"source-map-support": "^0.5.16",
|
8
|
+
"uglify-js": "^3.7.2"
|
9
|
+
},
|
10
|
+
"devDependencies": {},
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "git+https://github.com/opal/opal.git"
|
14
|
+
}
|
15
|
+
}
|
data/tasks/linting.rake
CHANGED
@@ -14,7 +14,7 @@ task :jshint do
|
|
14
14
|
# opal-builder and opal-parser take so long travis stalls
|
15
15
|
next if path =~ /.min.js\z|opal-builder|opal-parser/
|
16
16
|
|
17
|
-
sh "jshint --verbose #{path}"
|
17
|
+
sh "yarn -s run jshint --verbose #{path}"
|
18
18
|
}
|
19
19
|
puts
|
20
20
|
puts "= Checking corelib files separately..."
|
@@ -26,16 +26,14 @@ task :jshint do
|
|
26
26
|
js_paths << js_path
|
27
27
|
end
|
28
28
|
js_paths.each do |js_path|
|
29
|
-
sh "jshint --verbose #{js_path}"
|
29
|
+
sh "yarn -s run jshint --verbose #{js_path}"
|
30
30
|
end
|
31
|
-
sh
|
31
|
+
sh 'yarn -s run jshint --verbose opal/corelib/runtime.js'
|
32
32
|
end
|
33
33
|
|
34
34
|
require 'rubocop/rake_task'
|
35
35
|
desc 'Run RuboCop on lib/, opal/ and stdlib/ directories'
|
36
36
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
37
|
-
# TODO: enable it back after releasing https://github.com/bbatsov/rubocop/pull/5633
|
38
|
-
# task.options << '--fail-fast'
|
39
37
|
task.options << '--extra-details'
|
40
38
|
task.options << '--display-style-guide'
|
41
39
|
task.options << '--parallel'
|
data/tasks/releasing.rake
CHANGED
@@ -70,8 +70,8 @@ task :changelog do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
changelog_entries.unshift changelog_entry.call(
|
73
|
-
tag_name: 'HEAD',
|
74
|
-
release_date: 'unreleased',
|
73
|
+
tag_name: ENV['VERSION'] || 'HEAD',
|
74
|
+
release_date: (ENV['VERSION'] ? Time.now.to_date.iso8601 : 'unreleased'),
|
75
75
|
previous_tag_name: previous_tag_name,
|
76
76
|
body: File.read(unreleased_path),
|
77
77
|
)
|
data/yarn.lock
ADDED
@@ -0,0 +1,244 @@
|
|
1
|
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
+
# yarn lockfile v1
|
3
|
+
|
4
|
+
|
5
|
+
balanced-match@^1.0.0:
|
6
|
+
version "1.0.0"
|
7
|
+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
8
|
+
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
9
|
+
|
10
|
+
benchmark@^2.1.4:
|
11
|
+
version "2.1.4"
|
12
|
+
resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629"
|
13
|
+
integrity sha1-CfPeMckWQl1JjMLuVloOvzwqVik=
|
14
|
+
dependencies:
|
15
|
+
lodash "^4.17.4"
|
16
|
+
platform "^1.3.3"
|
17
|
+
|
18
|
+
brace-expansion@^1.1.7:
|
19
|
+
version "1.1.11"
|
20
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
21
|
+
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
22
|
+
dependencies:
|
23
|
+
balanced-match "^1.0.0"
|
24
|
+
concat-map "0.0.1"
|
25
|
+
|
26
|
+
buffer-from@^1.0.0:
|
27
|
+
version "1.1.1"
|
28
|
+
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
29
|
+
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
|
30
|
+
|
31
|
+
cli@~1.0.0:
|
32
|
+
version "1.0.1"
|
33
|
+
resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
|
34
|
+
integrity sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=
|
35
|
+
dependencies:
|
36
|
+
exit "0.1.2"
|
37
|
+
glob "^7.1.1"
|
38
|
+
|
39
|
+
concat-map@0.0.1:
|
40
|
+
version "0.0.1"
|
41
|
+
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
42
|
+
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
43
|
+
|
44
|
+
console-browserify@1.1.x:
|
45
|
+
version "1.1.0"
|
46
|
+
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
|
47
|
+
integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
|
48
|
+
dependencies:
|
49
|
+
date-now "^0.1.4"
|
50
|
+
|
51
|
+
core-util-is@~1.0.0:
|
52
|
+
version "1.0.2"
|
53
|
+
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
54
|
+
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
55
|
+
|
56
|
+
date-now@^0.1.4:
|
57
|
+
version "0.1.4"
|
58
|
+
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
59
|
+
integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
|
60
|
+
|
61
|
+
dom-serializer@0:
|
62
|
+
version "0.2.2"
|
63
|
+
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
|
64
|
+
integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
|
65
|
+
dependencies:
|
66
|
+
domelementtype "^2.0.1"
|
67
|
+
entities "^2.0.0"
|
68
|
+
|
69
|
+
domelementtype@1:
|
70
|
+
version "1.3.1"
|
71
|
+
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
|
72
|
+
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
|
73
|
+
|
74
|
+
domelementtype@^2.0.1:
|
75
|
+
version "2.1.0"
|
76
|
+
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
|
77
|
+
integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
|
78
|
+
|
79
|
+
domhandler@2.3:
|
80
|
+
version "2.3.0"
|
81
|
+
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
|
82
|
+
integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg=
|
83
|
+
dependencies:
|
84
|
+
domelementtype "1"
|
85
|
+
|
86
|
+
domutils@1.5:
|
87
|
+
version "1.5.1"
|
88
|
+
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
|
89
|
+
integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
|
90
|
+
dependencies:
|
91
|
+
dom-serializer "0"
|
92
|
+
domelementtype "1"
|
93
|
+
|
94
|
+
entities@1.0:
|
95
|
+
version "1.0.0"
|
96
|
+
resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
|
97
|
+
integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=
|
98
|
+
|
99
|
+
entities@^2.0.0:
|
100
|
+
version "2.1.0"
|
101
|
+
resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
|
102
|
+
integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
|
103
|
+
|
104
|
+
exit@0.1.2, exit@0.1.x:
|
105
|
+
version "0.1.2"
|
106
|
+
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
|
107
|
+
integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
|
108
|
+
|
109
|
+
fs.realpath@^1.0.0:
|
110
|
+
version "1.0.0"
|
111
|
+
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
112
|
+
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
113
|
+
|
114
|
+
glob@^7.1.1:
|
115
|
+
version "7.1.6"
|
116
|
+
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
|
117
|
+
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
118
|
+
dependencies:
|
119
|
+
fs.realpath "^1.0.0"
|
120
|
+
inflight "^1.0.4"
|
121
|
+
inherits "2"
|
122
|
+
minimatch "^3.0.4"
|
123
|
+
once "^1.3.0"
|
124
|
+
path-is-absolute "^1.0.0"
|
125
|
+
|
126
|
+
htmlparser2@3.8.x:
|
127
|
+
version "3.8.3"
|
128
|
+
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
|
129
|
+
integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg=
|
130
|
+
dependencies:
|
131
|
+
domelementtype "1"
|
132
|
+
domhandler "2.3"
|
133
|
+
domutils "1.5"
|
134
|
+
entities "1.0"
|
135
|
+
readable-stream "1.1"
|
136
|
+
|
137
|
+
inflight@^1.0.4:
|
138
|
+
version "1.0.6"
|
139
|
+
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
140
|
+
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
141
|
+
dependencies:
|
142
|
+
once "^1.3.0"
|
143
|
+
wrappy "1"
|
144
|
+
|
145
|
+
inherits@2, inherits@~2.0.1:
|
146
|
+
version "2.0.4"
|
147
|
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
148
|
+
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
149
|
+
|
150
|
+
isarray@0.0.1:
|
151
|
+
version "0.0.1"
|
152
|
+
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
|
153
|
+
integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
|
154
|
+
|
155
|
+
jshint@^2.11.0-rc1:
|
156
|
+
version "2.12.0"
|
157
|
+
resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.12.0.tgz#52e75bd058d587ef81a0e2f95e5cf18eb5dc5c37"
|
158
|
+
integrity sha512-TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==
|
159
|
+
dependencies:
|
160
|
+
cli "~1.0.0"
|
161
|
+
console-browserify "1.1.x"
|
162
|
+
exit "0.1.x"
|
163
|
+
htmlparser2 "3.8.x"
|
164
|
+
lodash "~4.17.19"
|
165
|
+
minimatch "~3.0.2"
|
166
|
+
shelljs "0.3.x"
|
167
|
+
strip-json-comments "1.0.x"
|
168
|
+
|
169
|
+
lodash@^4.17.4, lodash@~4.17.19:
|
170
|
+
version "4.17.20"
|
171
|
+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
|
172
|
+
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
|
173
|
+
|
174
|
+
minimatch@^3.0.4, minimatch@~3.0.2:
|
175
|
+
version "3.0.4"
|
176
|
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
177
|
+
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
178
|
+
dependencies:
|
179
|
+
brace-expansion "^1.1.7"
|
180
|
+
|
181
|
+
once@^1.3.0:
|
182
|
+
version "1.4.0"
|
183
|
+
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
184
|
+
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
185
|
+
dependencies:
|
186
|
+
wrappy "1"
|
187
|
+
|
188
|
+
path-is-absolute@^1.0.0:
|
189
|
+
version "1.0.1"
|
190
|
+
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
191
|
+
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
192
|
+
|
193
|
+
platform@^1.3.3:
|
194
|
+
version "1.3.6"
|
195
|
+
resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7"
|
196
|
+
integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==
|
197
|
+
|
198
|
+
readable-stream@1.1:
|
199
|
+
version "1.1.13"
|
200
|
+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
|
201
|
+
integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=
|
202
|
+
dependencies:
|
203
|
+
core-util-is "~1.0.0"
|
204
|
+
inherits "~2.0.1"
|
205
|
+
isarray "0.0.1"
|
206
|
+
string_decoder "~0.10.x"
|
207
|
+
|
208
|
+
shelljs@0.3.x:
|
209
|
+
version "0.3.0"
|
210
|
+
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
|
211
|
+
integrity sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=
|
212
|
+
|
213
|
+
source-map-support@^0.5.16:
|
214
|
+
version "0.5.19"
|
215
|
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
216
|
+
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
217
|
+
dependencies:
|
218
|
+
buffer-from "^1.0.0"
|
219
|
+
source-map "^0.6.0"
|
220
|
+
|
221
|
+
source-map@^0.6.0:
|
222
|
+
version "0.6.1"
|
223
|
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
224
|
+
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
225
|
+
|
226
|
+
string_decoder@~0.10.x:
|
227
|
+
version "0.10.31"
|
228
|
+
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
|
229
|
+
integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
|
230
|
+
|
231
|
+
strip-json-comments@1.0.x:
|
232
|
+
version "1.0.4"
|
233
|
+
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
|
234
|
+
integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
|
235
|
+
|
236
|
+
uglify-js@^3.7.2:
|
237
|
+
version "3.12.1"
|
238
|
+
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.1.tgz#78307f539f7b9ca5557babb186ea78ad30cc0375"
|
239
|
+
integrity sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==
|
240
|
+
|
241
|
+
wrappy@1:
|
242
|
+
version "1.0.2"
|
243
|
+
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
244
|
+
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
8
8
|
- meh.
|
9
9
|
- Adam Beynon
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-12-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ast
|
@@ -30,16 +30,16 @@ dependencies:
|
|
30
30
|
name: parser
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 2.
|
35
|
+
version: '2.6'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 2.
|
42
|
+
version: '2.6'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: sourcemap
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -209,6 +209,8 @@ extra_rdoc_files: []
|
|
209
209
|
files:
|
210
210
|
- ".codeclimate.yml"
|
211
211
|
- ".gitattributes"
|
212
|
+
- ".github/FUNDING.yml"
|
213
|
+
- ".github/workflows/build.yml"
|
212
214
|
- ".gitignore"
|
213
215
|
- ".gitmodules"
|
214
216
|
- ".inch.yml"
|
@@ -216,7 +218,6 @@ files:
|
|
216
218
|
- ".rspec"
|
217
219
|
- ".rubocop.yml"
|
218
220
|
- ".rubocop_todo.yml"
|
219
|
-
- ".travis.yml"
|
220
221
|
- ".yardopts"
|
221
222
|
- CHANGELOG.md
|
222
223
|
- CONDUCT.md
|
@@ -228,7 +229,6 @@ files:
|
|
228
229
|
- README.md
|
229
230
|
- Rakefile
|
230
231
|
- UNRELEASED.md
|
231
|
-
- appveyor.yml
|
232
232
|
- benchmark-ips/README.md
|
233
233
|
- benchmark-ips/bm_block_vs_yield.rb
|
234
234
|
- benchmark-ips/bm_case.rb
|
@@ -335,12 +335,14 @@ files:
|
|
335
335
|
- benchmark/bm_module_definition_small.rb
|
336
336
|
- benchmark/run.rb
|
337
337
|
- bin/console
|
338
|
+
- bin/git-submodule-fast-install
|
338
339
|
- bin/opal
|
339
340
|
- bin/opal-benchmark-ips
|
340
341
|
- bin/opal-mspec
|
341
342
|
- bin/opal-repl
|
342
343
|
- bin/rake
|
343
344
|
- bin/setup
|
345
|
+
- bin/yarn
|
344
346
|
- config.ru
|
345
347
|
- docs/compiled_ruby.md
|
346
348
|
- docs/compiler.md
|
@@ -354,6 +356,7 @@ files:
|
|
354
356
|
- docs/opal_parser.md
|
355
357
|
- docs/promises.md
|
356
358
|
- docs/rails.md
|
359
|
+
- docs/releasing.md
|
357
360
|
- docs/rspec.md
|
358
361
|
- docs/sinatra.md
|
359
362
|
- docs/source_maps.md
|
@@ -577,6 +580,7 @@ files:
|
|
577
580
|
- opal/opal/base.rb
|
578
581
|
- opal/opal/full.rb
|
579
582
|
- opal/opal/mini.rb
|
583
|
+
- package.json
|
580
584
|
- stdlib/README.md
|
581
585
|
- stdlib/base64.rb
|
582
586
|
- stdlib/benchmark.rb
|
@@ -730,19 +734,20 @@ files:
|
|
730
734
|
- vendored-minitest/minitest/test.rb
|
731
735
|
- vendored-minitest/minitest/unit.rb
|
732
736
|
- vendored-minitest/test/unit.rb
|
737
|
+
- yarn.lock
|
733
738
|
homepage: https://opalrb.com
|
734
739
|
licenses:
|
735
740
|
- MIT
|
736
741
|
metadata:
|
737
742
|
bug_tracker_uri: https://github.com/opal/opal/issues
|
738
|
-
changelog_uri: https://github.com/opal/opal/blob/v1.0.
|
739
|
-
readme_uri: https://github.com/opal/opal/blob/v1.0.
|
740
|
-
api_documentation_uri: http://opalrb.com/docs/api/v1.0.
|
741
|
-
guides_uri: http://opalrb.com/docs/guides/v1.0.
|
743
|
+
changelog_uri: https://github.com/opal/opal/blob/v1.0.5/CHANGELOG.md
|
744
|
+
readme_uri: https://github.com/opal/opal/blob/v1.0.5/README.md
|
745
|
+
api_documentation_uri: http://opalrb.com/docs/api/v1.0.5/index.html
|
746
|
+
guides_uri: http://opalrb.com/docs/guides/v1.0.5/index.html
|
742
747
|
homepage_uri: https://opalrb.com/
|
743
748
|
chat_uri: https://gitter.im/opal/opal
|
744
749
|
source_code_uri: https://github.com/opal/opal
|
745
|
-
post_install_message:
|
750
|
+
post_install_message:
|
746
751
|
rdoc_options: []
|
747
752
|
require_paths:
|
748
753
|
- lib
|
@@ -757,8 +762,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
757
762
|
- !ruby/object:Gem::Version
|
758
763
|
version: '0'
|
759
764
|
requirements: []
|
760
|
-
rubygems_version: 3.
|
761
|
-
signing_key:
|
765
|
+
rubygems_version: 3.1.4
|
766
|
+
signing_key:
|
762
767
|
specification_version: 4
|
763
768
|
summary: Ruby runtime and core library for JavaScript
|
764
769
|
test_files: []
|
data/.travis.yml
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
# https://github.com/discourse/mini_racer#travis-ci
|
4
|
-
sudo: required
|
5
|
-
dist: trusty
|
6
|
-
|
7
|
-
addons:
|
8
|
-
chrome: stable
|
9
|
-
|
10
|
-
branches:
|
11
|
-
only:
|
12
|
-
- master
|
13
|
-
- /^.*-stable$/
|
14
|
-
- /^.*ci-check$/
|
15
|
-
|
16
|
-
cache:
|
17
|
-
bundler: true
|
18
|
-
directories:
|
19
|
-
- /home/travis/.nvm/
|
20
|
-
- smoke_test_opal_rspec
|
21
|
-
|
22
|
-
matrix:
|
23
|
-
fast_finish: true
|
24
|
-
|
25
|
-
include:
|
26
|
-
- rvm: 2.5.3
|
27
|
-
env: RUN=mspec_opal_chrome
|
28
|
-
|
29
|
-
- rvm: 2.5.3
|
30
|
-
env: RUN=mspec_ruby_chrome
|
31
|
-
|
32
|
-
# - rvm: 2.5.3
|
33
|
-
# env:
|
34
|
-
# - RUN=browser_test
|
35
|
-
# - SAUCE_USERNAME=elia
|
36
|
-
# # SAUCE_ACCESS_KEY:
|
37
|
-
# - secure: GT13SjzU8vmqKIyY2LAXje+ndqevTsX/w71JkZHRLTrDUl0qcIod7xsfahbzGt2gOZPYZUkKiVaPoUenhc/YeJ2jTJVHeHY9UEl2II+3tOtuvp2jLadA//aBbsB6/09d7lIZMzpa93TL2R/SncPxugYW9v2o8o8Lwd2iIzowT/g=
|
38
|
-
|
39
|
-
- rvm: 2.5.3
|
40
|
-
env: RUN=lint
|
41
|
-
|
42
|
-
- rvm: 2.5.3
|
43
|
-
env: RUN=mspec_opal_nodejs
|
44
|
-
|
45
|
-
- rvm: 2.5.3
|
46
|
-
env: RUN=mspec_ruby_nodejs TZ="/usr/share/zoneinfo/Pacific/Fiji"
|
47
|
-
|
48
|
-
- rvm: 2.5.3
|
49
|
-
env: RUN=minitest
|
50
|
-
|
51
|
-
- rvm: 2.5.3
|
52
|
-
env: RUN=rspec RACK_VERSION='~> 2.0' CHECK_COVERAGE=true
|
53
|
-
|
54
|
-
- rvm: 2.5.3
|
55
|
-
env: RUN=smoke_test
|
56
|
-
|
57
|
-
- rvm: ruby-head
|
58
|
-
env: RUN=rspec
|
59
|
-
|
60
|
-
- rvm: 2.4.5
|
61
|
-
env: RUN=rspec RACK_VERSION='~> 2.0'
|
62
|
-
|
63
|
-
- rvm: 2.3.8
|
64
|
-
env: RUN=rspec
|
65
|
-
|
66
|
-
- rvm: 2.6.0
|
67
|
-
env: RUN=rspec
|
68
|
-
|
69
|
-
- rvm: truffleruby
|
70
|
-
env: RUN=rspec
|
71
|
-
|
72
|
-
- rvm: jruby-9.2.4.1
|
73
|
-
env: RUN=rspec
|
74
|
-
|
75
|
-
- rvm: jruby-head
|
76
|
-
env: RUN=rspec
|
77
|
-
|
78
|
-
allow_failures:
|
79
|
-
- rvm: ruby-head
|
80
|
-
- rvm: jruby-head
|
81
|
-
- rvm: truffleruby
|
82
|
-
- env: RUN=smoke_test
|
83
|
-
|
84
|
-
|
85
|
-
before_install:
|
86
|
-
# Keep track of which version of node we're running the specs against
|
87
|
-
- node -v
|
88
|
-
- git submodule update --init
|
89
|
-
- npm install -g jshint
|
90
|
-
- npm install -g uglify-js
|
91
|
-
- bundle config without doc
|
92
|
-
- which google-chrome-stable
|
93
|
-
- google-chrome-stable --version
|
94
|
-
- export RUBYOPT=-w
|
95
|
-
# Wokraround from https://github.com/travis-ci/travis-ci/issues/9024#issuecomment-356282802
|
96
|
-
- sudo chown root /opt/google/chrome/chrome-sandbox
|
97
|
-
- sudo chmod 4755 /opt/google/chrome/chrome-sandbox
|
98
|
-
|
99
|
-
script:
|
100
|
-
- "bundle exec rake $RUN"
|
101
|
-
|
102
|
-
notifications:
|
103
|
-
irc: "irc.freenode.org#opal"
|
104
|
-
webhooks:
|
105
|
-
urls:
|
106
|
-
- https://webhooks.gitter.im/e/2ea12333adebda0c2289
|
107
|
-
|
108
|
-
# addons:
|
109
|
-
# sauce_connect: true
|
data/appveyor.yml
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
version: '{build}'
|
2
|
-
|
3
|
-
skip_tags: true
|
4
|
-
# AppVeyor automatically skips the build if the commit contains [ci skip] or [skip ci]
|
5
|
-
#skip_commits:
|
6
|
-
# message: /\[ci skip\]/
|
7
|
-
|
8
|
-
clone_depth: 10
|
9
|
-
|
10
|
-
environment:
|
11
|
-
ruby_version: '25'
|
12
|
-
|
13
|
-
branches:
|
14
|
-
only:
|
15
|
-
- master
|
16
|
-
- /.*-stable/
|
17
|
-
- /.*/ci-check/
|
18
|
-
|
19
|
-
install:
|
20
|
-
- git submodule update --init --recursive
|
21
|
-
# Take default Ruby out of path
|
22
|
-
- SET PATH=%PATH:C:\Ruby193\bin;=%
|
23
|
-
# Add Ruby to path from build matrix
|
24
|
-
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
25
|
-
- ruby --version
|
26
|
-
- gem --version
|
27
|
-
- node --version
|
28
|
-
- bundler --version
|
29
|
-
- bundle
|
30
|
-
|
31
|
-
build: off
|
32
|
-
|
33
|
-
# TODO: add mspec_chrome and minitest_chrome once Chrome 60 will be released
|
34
|
-
test_script:
|
35
|
-
- bundle exec rake rspec mspec_nodejs minitest_nodejs minitest_node_nodejs
|