Skip to content
This repository was archived by the owner on Dec 4, 2023. It is now read-only.

Removed Ruby warnings #253

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions lib/v8/access/invocation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def aritize(args)
module Proc
include Aritize
def methodcall(this, args)
call *aritize([this].concat(args))
call(*aritize([this].concat(args)))
end
::Proc.send :include, self
end
Expand All @@ -24,11 +24,11 @@ def methodcall(this, args)
context = V8::Context.current
access = context.access
if this.equal? self.receiver
call *aritize(args)
call(*aritize(args))
elsif this.class <= self.receiver.class
access.methodcall(unbind, this, args)
elsif this.equal? context.scope
call *aritize(args)
call(*aritize(args))
else
fail TypeError, "cannot invoke #{self} on #{this}"
end
Expand Down
7 changes: 3 additions & 4 deletions lib/v8/error.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ def causes

def backtrace(*modifiers)
return unless super()
trace_framework = modifiers.include?(:framework)
trace_ruby = modifiers.length == 0 || modifiers.include?(:ruby)
trace_javascript = modifiers.length == 0 || modifiers.include?(:javascript)
bilingual_backtrace(trace_ruby, trace_javascript).tap do |trace|
Expand All @@ -61,17 +60,17 @@ def in_ruby?
end

def bilingual_backtrace(trace_ruby = true, trace_javascript = true)
backtrace = causes.reduce(:backtrace => [], :ruby => -1, :javascript => -1) { |accumulator, cause|
causes.reduce(:backtrace => [], :ruby => -1, :javascript => -1) { |accumulator, cause|
accumulator.tap do
if trace_ruby
backtrace_selector = cause.respond_to?(:standard_error_backtrace) ? :standard_error_backtrace : :backtrace
ruby_frames = cause.send(backtrace_selector)[0..accumulator[:ruby]]
accumulator[:backtrace].unshift *ruby_frames
accumulator[:backtrace].unshift(*ruby_frames)
accumulator[:ruby] -= ruby_frames.length
end
if trace_javascript && cause.respond_to?(:javascript_backtrace)
javascript_frames = cause.javascript_backtrace.to_a[0..accumulator[:javascript]].map(&:to_s)
accumulator[:backtrace].unshift *javascript_frames
accumulator[:backtrace].unshift(*javascript_frames)
accumulator[:javascript] -= javascript_frames.length
end
end
Expand Down
18 changes: 13 additions & 5 deletions lib/v8/weak.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,20 @@ def []=(key, value)

module Cell
def weakcell(name, &block)
unless storage = instance_variable_get("@#{name}")
storage = instance_variable_set("@#{name}", Storage.new)
end
storage.access(&block)
ivar = "@#{name}"

if instance_variable_defined?(ivar) && instance_variable_get(ivar)
instance_variable_get(ivar)
else
instance_variable_set(ivar, Storage.new)
end.access(&block)
end

class Storage
def initialize
@ref = nil
end

def access(&block)
if @ref
@ref.object || populate(block)
Expand All @@ -70,4 +78,4 @@ def populate(block)
end
end
end
end
end
4 changes: 2 additions & 2 deletions spec/v8/conversion_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ def test
context "for 32-bit numbers" do
it "should convert positive integer" do
cxt['fixnum_a'] = 123
cxt['fixnum_a'].should == 123
cxt['fixnum_a'].should eq(123)
cxt['fixnum_a'].should be_instance_of(Fixnum)
end

it "should convert negative integer" do
cxt['fixnum_b'] = -123
cxt['fixnum_b'].should == -123
cxt['fixnum_b'].should eq(-123)
cxt['fixnum_b'].should be_instance_of(Fixnum)
end
end
Expand Down