therubyracer 0.12.1 → 0.12.2

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 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