rubyjs / therubyracer

Embed the V8 Javascript Interpreter into Ruby
1.66k stars 191 forks source link

Verify All Memory Related Leaks and crashes #350

Closed cowboyd closed 8 months ago

cowboyd commented 9 years ago

Because of the way The Ruby Racer handled references for Ruby objects embedded into V8, where JavaScript is the only runtime that holds a reference, there many GC edge cases that were hard to get right. This lead to persistent instabilities relating to memory and garbage collection.

Newer versions of V8 make this easier to track by letting the embedder do book-keeping at the both the Isolate and Context levels, so that https://github.com/cowboyd/therubyracer/pull/348 his able to handle these issues.

Create a testcase and verify that the following tickets are resolved by https://github.com/cowboyd/therubyracer/pull/348

https://github.com/cowboyd/therubyracer/issues/153 https://github.com/cowboyd/therubyracer/issues/169 https://github.com/cowboyd/therubyracer/issues/176 https://github.com/cowboyd/therubyracer/issues/187 https://github.com/cowboyd/therubyracer/issues/201 https://github.com/cowboyd/therubyracer/issues/206 https://github.com/cowboyd/therubyracer/issues/260 https://github.com/cowboyd/therubyracer/issues/265 https://github.com/cowboyd/therubyracer/issues/274 https://github.com/cowboyd/therubyracer/issues/345 https://github.com/cowboyd/therubyracer/issues/330 https://github.com/cowboyd/therubyracer/issues/328 https://github.com/cowboyd/therubyracer/issues/326 https://github.com/cowboyd/therubyracer/issues/320 https://github.com/cowboyd/therubyracer/issues/317 https://github.com/cowboyd/therubyracer/issues/316 https://github.com/cowboyd/therubyracer/issues/309 https://github.com/cowboyd/therubyracer/issues/300 https://github.com/cowboyd/therubyracer/issues/299