therubyracer 0.12.1 → 0.12.2

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
  SHA1:
3
- metadata.gz: 9cfa70f9de350c1e76e6794ae66d1f7dd2026462
4
- data.tar.gz: 21a5105a79939e804bfdf22d8a0e4108d614841c
3
+ metadata.gz: e8d7f04f47f47686f4e67c48322d4941180096f0
4
+ data.tar.gz: 6b8d2a931ab2ee60b007019224cd93ac412fa682
5
5
  SHA512:
6
- metadata.gz: cef15fc729596d2d9d0af7e5c5e467ff68e9db40faf66e200af4a7c555494d265a5415119243e440c955738b9bd22e50558fbf4eb69ea1df46ff1a597df267c3
7
- data.tar.gz: 2bf28f39134268f84dc4bf029d0a9ef060670342c1fd7699e97c21debd4317c2ca14271a99b179a23e506955f557f0568c45d2880a058f891afb39f862549ca0
6
+ metadata.gz: 6eb44843a10260b65857e65fc396fc4d8acce641d87c848aa34d0726adf6a3b2f271e49e3290fa16b37ceb8a9e2ee1b72d3f4f4fb4704bd8adf16fb03d484b03
7
+ data.tar.gz: 143cdbad4d72d27501f00ecbc57b569cfdc1f11a381ccd69e87089b364059bb56578d63237f437124db88adc53124fd0fe53805fa3452dcdf219e92a55b55a35
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.12.2 2015/04/06
4
+
5
+ * fix memory leak where weak hash map entries were not being cleaned
6
+ up. Thanks to @SamSaffon
7
+
3
8
  ## 0.12.1 2014/02/03
4
9
 
5
10
  * add `timeout` option to `V8::Context` to forcibly abort long running scripts (thanks to @SamSaffron)
data/README.md CHANGED
@@ -28,7 +28,9 @@ Embed the V8 JavaScript interpreter into Ruby.
28
28
  then in your Ruby code
29
29
 
30
30
  require 'v8'
31
- # or if using bundler (as with Rails), add the following to your Gemfile
31
+
32
+ or if using bundler (as with Rails), add the following to your Gemfile
33
+
32
34
  gem "therubyracer"
33
35
 
34
36
  evaluate some simple JavaScript
@@ -1,3 +1,3 @@
1
1
  module V8
2
- VERSION = "0.12.1"
2
+ VERSION = "0.12.2"
3
3
  end
@@ -39,7 +39,16 @@ module V8
39
39
  end
40
40
 
41
41
  def []=(key, value)
42
- @values[key] = V8::Weak::Ref.new(value)
42
+ ref = V8::Weak::Ref.new(value)
43
+ ObjectSpace.define_finalizer(value, self.class.ensure_cleanup(@values, key, ref))
44
+
45
+ @values[key] = ref
46
+ end
47
+
48
+ def self.ensure_cleanup(values,key,ref)
49
+ proc {
50
+ values.delete(key) if values[key] == ref
51
+ }
43
52
  end
44
53
  end
45
54
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: therubyracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.12.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Lowell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-03 00:00:00.000000000 Z
11
+ date: 2015-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ref
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: libv8
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.16.14.0
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
40
  version: 3.16.14.0
41
41
  description: Call JavaScript code and manipulate JavaScript objects from Ruby. Call
@@ -47,8 +47,8 @@ extensions:
47
47
  - ext/v8/extconf.rb
48
48
  extra_rdoc_files: []
49
49
  files:
50
- - .gitignore
51
- - .travis.yml
50
+ - ".gitignore"
51
+ - ".travis.yml"
52
52
  - Changelog.md
53
53
  - Gemfile
54
54
  - README.md
@@ -148,17 +148,17 @@ require_paths:
148
148
  - ext
149
149
  required_ruby_version: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - '>='
151
+ - - ">="
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - '>='
156
+ - - ">="
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  requirements: []
160
160
  rubyforge_project:
161
- rubygems_version: 2.0.3
161
+ rubygems_version: 2.2.2
162
162
  signing_key:
163
163
  specification_version: 4
164
164
  summary: Embed the V8 JavaScript interpreter into Ruby