opal 1.7.3 → 1.7.4
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/.eslintrc.js +1 -0
- data/CHANGELOG.md +15 -1
- data/lib/opal/cli_runners/chrome.rb +5 -1
- data/lib/opal/nodes/if.rb +1 -1
- data/lib/opal/simple_server.rb +2 -2
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/constants.rb +2 -2
- data/opal/corelib/regexp.rb +4 -1
- data/opal/corelib/runtime.js +7 -2
- data/spec/opal/core/language/case_spec.rb +13 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e1885b32b1546863d767adcebce41e10b5b10872bdad28d197b2a193fb29e54
|
4
|
+
data.tar.gz: 24a27f9aa47ddd775a36b6bb2bf6fcf32ab51c80ff6ad5bf9c5baf685da83576
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4c34638370c988ad9adad7eab68f643b399cdacaa5e88dd4f11db224efbcdf7a7c7278afdb5586ef65b27bb7918c836641ac18dfc4db1b968c2aa73358fb192
|
7
|
+
data.tar.gz: 3a3fce3444d3f14b8aaee302f6ec0cf67991f80dac46702a21bdbf1a51534bd114584a7a94d7d03abea6d333a527db249244cdc1fd7b94b09abe11716259788f
|
data/.eslintrc.js
CHANGED
data/CHANGELOG.md
CHANGED
@@ -16,7 +16,7 @@ Changes are grouped as follows:
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
## [1.7.
|
19
|
+
## [1.7.4](https://github.com/opal/opal/compare/v1.7.3...v1.7.4) - 2023-09-14
|
20
20
|
|
21
21
|
|
22
22
|
<!--
|
@@ -28,6 +28,20 @@ Changes are grouped as follows:
|
|
28
28
|
### Performance
|
29
29
|
-->
|
30
30
|
|
31
|
+
### Fixed
|
32
|
+
|
33
|
+
- Use a Map instead of a POJO for the jsid_cache ([#2584](https://github.com/opal/opal/pull/2584))
|
34
|
+
- Lowercase response headers in `SimpleServer` for rack 3.0 compatibility ([#2578](https://github.com/opal/opal/pull/2578))
|
35
|
+
- Fix `switch` with Object-wrapped values ([#2542](https://github.com/opal/opal/pull/2542))
|
36
|
+
- Regexp.escape: Cast to String or drop exception ([#2552](https://github.com/opal/opal/pull/2552))
|
37
|
+
- Chrome runner fix: support code that contains `</script>` ([#2581](https://github.com/opal/opal/pull/2581))
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
## [1.7.3](https://github.com/opal/opal/compare/v1.7.2...v1.7.3) - 2023-03-23
|
43
|
+
|
44
|
+
|
31
45
|
### Fixed
|
32
46
|
|
33
47
|
- Disallow to define a singleton class for Number ([#2521](https://github.com/opal/opal/pull/2521))
|
@@ -70,6 +70,10 @@ module Opal
|
|
70
70
|
ext = builder.output_extension
|
71
71
|
module_type = ' type="module"' if builder.esm?
|
72
72
|
|
73
|
+
# Some maps may contain `</script>` fragment (eg. in strings) which would close our
|
74
|
+
# `<script>` tag prematurely. For this case, we need to escape the `</script>` tag.
|
75
|
+
map_json = map.to_json.gsub(/(<\/scr)(ipt>)/i, '\1"+"\2')
|
76
|
+
|
73
77
|
# Chrome can't handle huge data passed to `addScriptToEvaluateOnLoad`
|
74
78
|
# https://groups.google.com/a/chromium.org/forum/#!topic/chromium-discuss/U5qyeX_ydBo
|
75
79
|
# The only way is to create temporary files and pass them to chrome.
|
@@ -86,7 +90,7 @@ module Opal
|
|
86
90
|
sourceMapSupport.install({
|
87
91
|
retrieveSourceMap: function(path) {
|
88
92
|
return path.endsWith('/index.#{ext}') ? {
|
89
|
-
url: './index.map', map: #{
|
93
|
+
url: './index.map', map: #{map_json}
|
90
94
|
} : null;
|
91
95
|
}
|
92
96
|
});
|
data/lib/opal/nodes/if.rb
CHANGED
@@ -349,7 +349,7 @@ module Opal
|
|
349
349
|
@switch_additional_rules = sexp.meta[:switch_additional_rules]
|
350
350
|
compile_switch_case(sexp.meta[:switch_test])
|
351
351
|
else
|
352
|
-
line "switch (", expr(@switch_first_test), ") {"
|
352
|
+
line "switch (", expr(@switch_first_test), ".valueOf()) {"
|
353
353
|
indent do
|
354
354
|
compile_switch_case(@switch_test)
|
355
355
|
end
|
data/lib/opal/simple_server.rb
CHANGED
@@ -51,7 +51,7 @@ class Opal::SimpleServer
|
|
51
51
|
asset = fetch_asset(path)
|
52
52
|
[
|
53
53
|
200,
|
54
|
-
{ '
|
54
|
+
{ 'content-type' => 'application/javascript' },
|
55
55
|
[asset[:data], "\n", asset[:map].to_data_uri_comment],
|
56
56
|
]
|
57
57
|
end
|
@@ -99,6 +99,6 @@ class Opal::SimpleServer
|
|
99
99
|
</html>
|
100
100
|
HTML
|
101
101
|
end
|
102
|
-
[200, { '
|
102
|
+
[200, { 'content-type' => 'text/html' }, [html]]
|
103
103
|
end
|
104
104
|
end
|
data/lib/opal/version.rb
CHANGED
data/opal/corelib/constants.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
::RUBY_PLATFORM = 'opal'
|
2
2
|
::RUBY_ENGINE = 'opal'
|
3
3
|
::RUBY_VERSION = '3.2.0'
|
4
|
-
::RUBY_ENGINE_VERSION = '1.7.
|
5
|
-
::RUBY_RELEASE_DATE = '2023-
|
4
|
+
::RUBY_ENGINE_VERSION = '1.7.4'
|
5
|
+
::RUBY_RELEASE_DATE = '2023-09-14'
|
6
6
|
::RUBY_PATCHLEVEL = 0
|
7
7
|
::RUBY_REVISION = '0'
|
8
8
|
::RUBY_COPYRIGHT = 'opal - Copyright (C) 2011-2023 Adam Beynon and the Opal contributors'
|
data/opal/corelib/regexp.rb
CHANGED
data/opal/corelib/runtime.js
CHANGED
@@ -1863,9 +1863,14 @@
|
|
1863
1863
|
}
|
1864
1864
|
|
1865
1865
|
// Optimization for a costly operation of prepending '$' to method names
|
1866
|
-
var jsid_cache =
|
1866
|
+
var jsid_cache = new Map();
|
1867
1867
|
function $jsid(name) {
|
1868
|
-
|
1868
|
+
var jsid = jsid_cache.get(name);
|
1869
|
+
if (!jsid) {
|
1870
|
+
jsid = '$' + name;
|
1871
|
+
jsid_cache.set(name, jsid);
|
1872
|
+
}
|
1873
|
+
return jsid;
|
1869
1874
|
}
|
1870
1875
|
Opal.jsid = $jsid;
|
1871
1876
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elia Schito
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-09-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ast
|
@@ -904,6 +904,7 @@ files:
|
|
904
904
|
- spec/opal/core/language/DATA/multiple___END___crlf_spec.rb
|
905
905
|
- spec/opal/core/language/DATA/multiple___END___spec.rb
|
906
906
|
- spec/opal/core/language/arguments/mlhs_arg_spec.rb
|
907
|
+
- spec/opal/core/language/case_spec.rb
|
907
908
|
- spec/opal/core/language/forward_args_spec.rb
|
908
909
|
- spec/opal/core/language/if_spec.rb
|
909
910
|
- spec/opal/core/language/infinite_range_spec.rb
|
@@ -1215,10 +1216,10 @@ licenses:
|
|
1215
1216
|
metadata:
|
1216
1217
|
homepage_uri: https://opalrb.com/
|
1217
1218
|
bug_tracker_uri: https://github.com/opal/opal/issues
|
1218
|
-
changelog_uri: https://github.com/opal/opal/blob/v1.7.
|
1219
|
-
readme_uri: https://github.com/opal/opal/blob/v1.7.
|
1220
|
-
api_documentation_uri: http://opalrb.com/docs/api/v1.7.
|
1221
|
-
guides_uri: http://opalrb.com/docs/guides/v1.7.
|
1219
|
+
changelog_uri: https://github.com/opal/opal/blob/v1.7.4/CHANGELOG.md
|
1220
|
+
readme_uri: https://github.com/opal/opal/blob/v1.7.4/README.md
|
1221
|
+
api_documentation_uri: http://opalrb.com/docs/api/v1.7.4/index.html
|
1222
|
+
guides_uri: http://opalrb.com/docs/guides/v1.7.4/index.html
|
1222
1223
|
chat_uri: https://gitter.im/opal/opal
|
1223
1224
|
source_code_uri: https://github.com/opal/opal
|
1224
1225
|
post_install_message:
|