isomorfeus-speednode 0.4.4 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a2f7d96883b92de64ef9d3432854caba940a961a38bc4c22067c33eb8e6c9cd
4
- data.tar.gz: 82bdc61da0e3aa48348e59d600e6d39658b7e6fd04f17f00b89cbf0db4986e38
3
+ metadata.gz: 788d541d9b3bc3d879bac905fa1bb3750cc4acf8a6e0612e62f4df6f2319dc27
4
+ data.tar.gz: 3e42a0ddf03ec1f630b1a502e55d6b3531da0fb66151e509c03b487c0b7995ba
5
5
  SHA512:
6
- metadata.gz: 6944313b70b37a8fcea6598d4b83e437b644e86ce63a5989b7ce6d55d8f8786eafa33a629bfafbd2c5ee9be167967128e03ab82cb93f873f6f0bd70877bd9fd3
7
- data.tar.gz: e06a2a69e670619b5660c9da30d14d7b4f6a8a34d1688ebac88c597bc411c2ef78d8f949496829602f329afd58c7a3c1ccd4e7a3a306be5567b9dbd45e7668c2
6
+ metadata.gz: 581b8293834f43968542b19ce1ab95a9fa0c8c2e464acbf253596d25e254d769c89cf32ede7b32d01a218dc5fb029240edfd7167f69dcc1dab3994b806140fcb
7
+ data.tar.gz: b58b3221aefbf65451d2cd537fe0ede4b77470ea8ccf2712b26fff65beaa372fa008c51259f0666eb0c160d4890b0f250367b7715f7bfa9ed9c4edaba0b980f2
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
- # isomorfeus-speednode
1
+ <h1 align="center">
2
+ <img src="https://github.com/isomorfeus/isomorfeus-speednode/blob/master/Logo.png?raw=true" align="center" width="234" height="127"/><br/>
3
+ Isomorfeus Speednode<br/>
4
+ </h1>
2
5
 
3
6
  A fast runtime for execjs using node js. Works on Linux, BSDs, MacOS and Windows.
4
7
  Inspired by [execjs-fastnode](https://github.com/jhawthorn/execjs-fastnode).
5
8
 
6
9
  ### Community and Support
7
- At the [Isomorfeus Framework Project](http://isomorfeus.com)
8
-
9
- ### Tested
10
- [TravisCI](https://travis-ci.org): [![Build Status](https://travis-ci.org/isomorfeus/isomorfeus-speednode.svg?branch=master)](https://travis-ci.org/isomorfeus/isomorfeus-speednode)
10
+ At the [Isomorfeus Framework Project](http://isomorfeus.com)
11
11
 
12
12
  ### Installation
13
13
 
@@ -40,8 +40,8 @@ Example for a compatible context:
40
40
  compat_context = ExecJS.compile('Test = "test"')
41
41
  compat_context.eval('1+1')
42
42
  ```
43
- #### Permissive
44
- A permissive context can be created with `ExecJS.permissive_compile` or code can be executed within a permissive context by using
43
+ #### Permissive
44
+ A permissive context can be created with `ExecJS.permissive_compile` or code can be executed within a permissive context by using
45
45
  `ExecJS.permissive_eval` or `ExecJS.permissive_exec`.
46
46
  Example for a permissive context:
47
47
  ```ruby
@@ -63,7 +63,7 @@ context.eval <<~JAVASCRIPT
63
63
  return new Promise(function (resolve, reject) { resolve(val); });
64
64
  }
65
65
  JAVASCRIPT
66
-
66
+
67
67
  context.await("foo('test')") # => 'test'
68
68
  ```
69
69
 
@@ -2,7 +2,7 @@ module ExecJS
2
2
  module Runtimes
3
3
  Speednode = Isomorfeus::Speednode::Runtime.new(
4
4
  name: 'Isomorfeus Speednode Node.js (V8)',
5
- command: %w[nodejs node],
5
+ command: %w[node nodejs],
6
6
  runner_path: File.join(File.dirname(__FILE__), 'speednode', 'runner.js'),
7
7
  encoding: 'UTF-8'
8
8
  )
@@ -110,7 +110,7 @@ module Isomorfeus
110
110
  extract_result(result)
111
111
  end
112
112
 
113
- def extract_result(output)
113
+ def extract_result(output)
114
114
  if output[0] == 'ok'
115
115
  output[1]
116
116
  else
@@ -44,7 +44,7 @@ module Isomorfeus
44
44
  attr_reader :responder
45
45
 
46
46
  def initialize(options)
47
- @mutex = Mutex.new
47
+ @mutex = Thread::Mutex.new
48
48
  @socket_path = nil
49
49
  @options = options
50
50
  @started = false
@@ -101,7 +101,11 @@ module Isomorfeus
101
101
  end
102
102
 
103
103
  def delete_context(context)
104
- command("deleteContext", context)
104
+ @mutex.synchronize do
105
+ VMCommand.new(@socket, "deleteContext", [context]).execute rescue nil
106
+ end
107
+ rescue ThreadError
108
+ nil
105
109
  end
106
110
 
107
111
  # def context_options(context)
@@ -122,7 +126,7 @@ module Isomorfeus
122
126
  @socket_dir = nil
123
127
  @socket_path = SecureRandom.uuid
124
128
  else
125
- @socket_dir = Dir.mktmpdir("isomorfeus-speednode-")
129
+ @socket_dir = Dir.mktmpdir("iso-speednode-")
126
130
  @socket_path = File.join(@socket_dir, "socket")
127
131
  end
128
132
  @pid = Process.spawn({"SOCKET_PATH" => @socket_path}, @options[:binary], @options[:source_maps], @options[:runner_path])
@@ -22,11 +22,7 @@ module Isomorfeus
22
22
  @encoding = options[:encoding]
23
23
  @deprecated = !!options[:deprecated]
24
24
 
25
- @vm = VM.new(
26
- binary: @binary,
27
- source_maps: '--enable-source-maps',
28
- runner_path: @runner_path
29
- )
25
+ @vm = VM.new(binary: @binary, source_maps: '--enable-source-maps', runner_path: @runner_path)
30
26
 
31
27
  @popen_options = {}
32
28
  @popen_options[:external_encoding] = @encoding if @encoding
@@ -1,5 +1,5 @@
1
- module Isomorfeus
2
- module Speednode
3
- VERSION = '0.4.4'
4
- end
5
- end
1
+ module Isomorfeus
2
+ module Speednode
3
+ VERSION = '0.4.8'
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-speednode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-14 00:00:00.000000000 Z
11
+ date: 2021-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execjs
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.13.9
33
+ version: 3.13.10
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.13.9
40
+ version: 3.13.10
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: win32-pipe
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -143,14 +143,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: '0'
146
+ version: 3.1.0
147
147
  required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  requirements: []
153
- rubygems_version: 3.2.22
153
+ rubygems_version: 3.3.3
154
154
  signing_key:
155
155
  specification_version: 4
156
156
  summary: A fast ExecJS runtime based on nodejs, tuned for Isomorfeus.