Skip to content

Commit

Permalink
[snapshot]
Browse files Browse the repository at this point in the history
  • Loading branch information
elia committed Feb 12, 2016
1 parent 5715798 commit 1b9033e
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 15 deletions.
12 changes: 9 additions & 3 deletions lib/opal/nodes/def.rb
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def compile_block_arg
add_temp "$args_len = $args.length - 1"
add_temp "$iter"
add_temp "#{yielder}"
line "#{yielder} = $iter = ($args[$args_len] ? $args[$args_len].$$p : nil);"
line "#{yielder} = $iter = $iter || (($iter = $args[$args_len]) && ($iter.$$p || nil));"
# if opt_args.any?
# end
# line "#{scope_name}.$$p = null;"
Expand Down Expand Up @@ -176,8 +176,14 @@ def compile_opt_args
is_undefined = arg[2][2] == :undefined
var_name = variable(arg[1])

line "if (#{var_name} == null || typeof(#{var_name}.$$p) === 'function') {"
line " $args_len -= 1;" if scope.uses_block?
line "console.log('#{var_name}', #{var_name}, arguments)"
line "if (#{var_name} == null || #{var_name}.$$p) {"
if scope.uses_block?
line " if (#{var_name} && #{var_name}.$$p) {"
line " $iter = #{var_name}.$$p;"
line " $args_len -= 1;"
line " }"
end
line " #{var_name} = ", expr(arg[2]) unless is_undefined
line "}"
end
Expand Down
6 changes: 3 additions & 3 deletions opal/corelib/array.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,18 @@ def self.[](*objects)
end

def initialize(size = nil, obj = nil, &block)
if `arguments.length > 2`
if `$args_len > 2`
raise ArgumentError, "wrong number of arguments (#{`arguments.length`} for 0..2)"
end

%x{
if (arguments.length === 0) {
if ($args_len === 0) {
self.splice(0, self.length);
return self;
}
}

if `arguments.length === 1`
if `$args_len === 1`
if Array === size
replace(size.to_a)
return self
Expand Down
21 changes: 12 additions & 9 deletions stdlib/set.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ def self.[](*ary)
end

def initialize(enum = nil, &block)
`console.log(['arguments', arguments])`
`console.log(['enum', enum$, 'block', block])`
@hash = Hash.new

`console.log([#{enum}, #{enum}["$nil?"]])`
return if enum.nil?
raise ArgumentError, 'value must be enumerable' unless Enumerable === enum

Expand Down Expand Up @@ -148,46 +151,46 @@ def subtract(enum)
enum.each { |item| delete item }
self
end

def |(enum)
unless enum.respond_to? :each
raise ArgumentError, "value must be enumerable"
end
dup.merge(enum)
end

def superset?(set)
set.is_a?(Set) or raise ArgumentError, "value must be a set"
return false if size < set.size
set.all? { |o| include?(o) }
end

alias >= superset?

def proper_superset?(set)
set.is_a?(Set) or raise ArgumentError, "value must be a set"
return false if size <= set.size
set.all? { |o| include?(o) }
end

alias > proper_superset?

def subset?(set)
set.is_a?(Set) or raise ArgumentError, "value must be a set"
return false if set.size < size
all? { |o| set.include?(o) }
end

alias <= subset?

def proper_subset?(set)
set.is_a?(Set) or raise ArgumentError, "value must be a set"
return false if set.size <= size
all? { |o| set.include?(o) }
end

alias < proper_subset?

alias + |
alias union |

Expand Down

0 comments on commit 1b9033e

Please sign in to comment.