mirror of
https://github.com/rubyjs/therubyracer
synced 2023-03-27 23:21:42 -04:00
47 lines
1.1 KiB
Ruby
47 lines
1.1 KiB
Ruby
require 'v8/retained_objects'
|
|
|
|
describe V8::RetainedObjects do
|
|
let(:object) { Object.new }
|
|
let(:objects) { V8::RetainedObjects.new }
|
|
|
|
it "knows that something isn't retained" do
|
|
expect(objects).not_to be_retaining object
|
|
end
|
|
|
|
describe "adding a reference to an object" do
|
|
before do
|
|
objects.add(object)
|
|
end
|
|
|
|
it "is now retained" do
|
|
expect(objects).to be_retaining object
|
|
end
|
|
|
|
describe "removing the reference" do
|
|
before do
|
|
objects.remove(object)
|
|
end
|
|
it "is no longer retained" do
|
|
expect(objects).to_not be_retaining object
|
|
end
|
|
end
|
|
describe "adding another reference and then removing" do
|
|
before do
|
|
objects.add(object)
|
|
objects.remove(object)
|
|
end
|
|
it "is still retained" do
|
|
expect(objects).to be_retaining object
|
|
end
|
|
|
|
describe "removing one more time" do
|
|
before do
|
|
objects.remove(object)
|
|
end
|
|
it "is no longer retained" do
|
|
expect(objects).to_not be_retaining object
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|