Skip to content

Instantly share code, notes, and snippets.

@elia
Created December 2, 2013 10:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elia/7747460 to your computer and use it in GitHub Desktop.
Save elia/7747460 to your computer and use it in GitHub Desktop.
  • 0.5.0

  • Optimized_operators is no longer a compiler option

Bridge class

  • Replace Opal.bridge_class() with "class Foo < bar" syntax

  • Expose Opal.bridge_class for bridging native prototypes

Bugfixes

  • Fix Enumerable#sort_by

HEREDOC

  • Fix lots of heredoc parsing bugs (needs cleanup)

  • Fix bug where method name in defined? might be a stub method

  • Generate block_pass/iter after assinging temp variables to avoid variable overlap

  • Support command call inside bracketed aref call

Source Maps

  • Lexer should increase line count correctly in =begin..=end comments
  • Stop generating empty fragments when require() used as expression
  • Compiler#source_map takes an optional source_file reference
  • New sexps should always get current line from lexer

Rubyspec

  • Remove duplicated specs
  • Run regexp specs through rubyspec
  • Run all time specs through rubyspec
  • Run struct specs from rubyspec
  • Remove duplicated specs
  • Add yet more string specs from rubyspec
  • Add some more specs from rubyspec and fix last push
  • Add some more string specs to rubyspec runner
  • Run String#index specs from rubyspec
  • Add #include? and #empty? sring specs
  • Run String#size and #length specs from rubyspec
  • Use String#swapcase specs from rubyspec
  • Run String#to_s and #to_str specs through rubyspec
  • Run String#upcase specs from rubyspec
  • Reorganize spec/ directory
  • Re-enable ivars in classes spec
  • Re-enable ERB filter spec
  • Remove irrelevant filters
  • Re-enable source maps spec running under opal
  • Remove last 'redo' filter as redo is now compliant
  • Add some more array specs
  • Add filters for failing Array#initialize_copy specs
  • Run Array#indices specs
  • Run Array#indexes specs from rubyspec
  • Remove another filter for Array#rindex
  • Remove filter on Array#index specs
  • Remove filters for Array#to_s and #inspect
  • Add specs for Array#hash
  • Add all rubyspecs for Array#[]
  • Move another frozen hash spec to unsupported
  • Fix 2 hash specs for #index and #key
  • Register Hash#compare_by_identity to rubyspec
  • Run specs for Hash.try_convert
  • Reorganize filtered hash specs into bugs or unsupported
  • Use Hash#store specs from rubyspec
  • Run Hash #to_h and #to_hash specs
  • Add Hash#inspect and #to_s to list of hash specs to run
  • Add more Hash specs (initialize, initialize_copy)
  • Use Hash#==, #eql? specs from rubyspec
  • Enable another Array#delete spec that uses mocks
  • Enable last Array#at spec (opal now supports mspec stubs)
  • Store all filtered specs inside a Set (instead of hash)
  • Use rubysepc for Kernel#to_s and #tap
  • Fix #equal? for numeric, boolean and strings. Add Kernel#equal? specs
  • Use rubyspec for Kernel#eql?
  • Run Enumerator specs directly from RubySpec
  • Use rubyspec language specs where possible
  • Add most rubyspecs for BasicObject

Cleanup

  • Slight cleanup of corelib

  • Minor cleanup of Array

  • Small comsmetic cleanup in hash.rb

  • Make opal-parser.rb simpler

  • Split Method into opal/method.rb

  • Cleanup spec_helper

  • Remove all stubbed mspec files

  • Remove old rubyspec spec_helper clone

  • Move all trust/taint/frozen filters into unsupported

  • Group all private_method filters together

  • Group all failing alias methods together

  • Rearrange spec/ directory to clean up hierarchies

  • Fix def compilation of splat parameter with reserved name

  • Add 'arguments' and 'undefined' as a reserved javascript keyword Yes, they aren't, but using them as Ruby variable names ends up breaking everything, especially if you use them as parameter names.

  • Cleanup Array#unshift

  • Prepare Enumerator::Yielder for some magic for infinite sequences

  • Add is_a? runtime helper

  • Cleanup Array#hash

  • Cleanup and compliancy fixes for Array#<=>

  • Fix typo in Array#*

  • Fix Array.new behaviour with subclasses

  • Add 'char' as a reserved javascript keyword

  • Use ISO8601 in Time#to_json

  • Cleanup Time#year

  • Cleanup Time#wednesday?

  • Cleanup Time#wday

  • Cleanup Time#tuesday?

  • Cleanup Time#to_i

  • Cleanup Time#to_f

  • Cleanup Time#thursday?

  • Cleanup Time#sunday?

  • Cleanup Time#usec

  • Cleanup Time#sec

  • Cleanup Time#monday?

  • Cleanup Time#monday?

  • Cleanup Time#mon

  • Cleanup Time#min

  • Cleanup Time#inspect

  • Cleanup Time#hour

  • Cleanup Time#friday?

  • Implement Enumerable#slice_before

  • Stub out required stdlib files using Opal::Processor

  • Move stub files from stdlib

  • Add Time#to_json

  • Cleanup Numeric#to_json

  • Cleanup Boolean#to_json

  • Cleanup Array#to_json

  • Cleanup special calls in JSON

  • Move Date.parse to the stdlib section and make it compliant

  • Fix for Time#- not returning when given a time

  • Add Time.parse() back for now

  • Cleanup and compliancy fixes for Time#strftime

  • Implement Time#gmt_offset

  • Make Time#zone compliant

  • Cleanup Time#yday

  • Cleanup Time#day

  • Cleanup and compliancy fixes for Time#-

  • Cleanup and compliancy fixes for Time#+

  • Remove Time.parse, it's in the stdlib

  • Cleanup alias style in Time

  • Cleanup Time.gm

  • Cleanup and compliancy fixes for Time.local

  • Cleanup Time.new

  • Define special variables inside the Time class

  • Add codeclimate.com badge

  • Add support for symbol arguments in Enumerable#inject

  • Implement Enumerable#min_by

  • Implement Enumerable#max_by

  • Move Enumerable#member? alias to the right place

  • Cleanup and compliancy fixes for Enumerable#min

  • Cleanup and compliancy fixes for Enumerable#max

  • Cleanup and compliancy fixes for Enumerable#grep

  • Implement Enumerable#one?

  • Cleanup and compliancy fixes for Enumerable#none?

  • Cleanup Enumerable#sort_by

  • Implement Enumerable#take_while

  • Cleanup Enumerable#take

  • Cleanup and compliancy fixes for Enumerable#group_by

  • Move #reduce to #inject

  • Cleanup and compliancy fixes for Enumerable#first

  • Make sure special calls are only skipped when they match their requirements

  • Add some basic docs on compiler parts

  • Add some basic contributing guide

  • Enable all Array#at specs

  • Enable some previosuly filtered enumerable specs

  • Builder should use options as needed

  • Allow Builder to take an options hash

  • Cleanup and compliancy fixes for Enumerable#find_index

  • Make Numeric#== compliant

  • Cleanup and consistency fixes for Enumerable#find_all

  • Cleanup Enumerable#entries

  • Cleanup and consistency fixes for Enumerable#each_with_object

  • Cleanup and compliancy fixes for Enumerable#each_with_index

  • Wron name for drop_while break spec

  • Add spec for breaking out of Enumerable#detect

  • Cleanup and compliancy fixes for Enumerable#each_slice

  • Cleanup and compliancy fixes for Enumerable#drop_while

  • Cleanup and consistency fixes for Enumerable#drop

  • Cleanup Hash#each

  • Cleanup and compliancy fixes for Enumerable#detect

  • Use $opal instead of Opal

  • Cleanup Array#empty?

  • Cleanup Array#each_index

  • Cleanup Array#each

  • Cleanup Array#collect!

  • Cleanup Array#collect

  • Fix for eval option on bin/opal

  • Cleanup and consistency fixes for Enumerable#count

  • Add Opal.destructure helper

  • Cleanup and compliancy fixes for Enumerable#reduce

  • Cleanup and compliancy fixes for Enumerable#collect

  • Cleanup and compliancy fixes for Enumerable#any?

  • Cleanup and compliancy fixes for Enumerable#all?

  • DRY JSON.parse and JSON.from_object

  • Keep all helpers under Opal::

  • Remove String#getbyte from string.rb, it's in encoding.rb

  • Move Encoding helper into corelib from spec_helper

  • Support function arguments in Opal.$yieldX

  • JSON.from_object should pass in js object for literals

  • Fix JSON.from_object() to use options hash

  • Fix for reserved js keywords to be used as block names in methods

  • Allow gvars to be lhs of mass-assignments

  • Fix bug in generated code for deconstructed block args

  • Add CallNode#add_special to make it easier to register special methods

  • Fix bug with parsing method calls for 'special'

  • Group all Encoding methods together in corelib/encoding.rb

  • Use the new coercion helper in Array

  • Make Array#fill compliant

  • Add Opal::Type.coerce_to helper

  • start cleaning up string parsing

  • Add support for parsing ruby code after heredoc identifier

  • Add :UNLESS to list of parser reswords

  • Remove debug line

  • Use keyword table for processing keywords and identifiers

  • Fix rake task to point to correct racc file location

  • Reorganize lexer/parser in lib

  • Support a stack of StringScanner in parser

  • Implement StringScanner#bol? and StringScanner#terminate with specs

  • Cleanup mspec/ospec runner to use a single array of files

  • Group opal specs and rubyspec specs together when running mspec

  • Update to mspec 1.5.20 (latest) for running rubyspecs

  • Move spec runners into tasks/mspec.rake

  • Keep all corelib globals in relevant files

  • Cleanup spec/rubyspecs

  • Implement Array#cycle

  • Allow Enumerator to have infinite elements

  • Allow empty lines in spec/rubyspecs

  • Fix Integer#=== and Float#===

  • Check the whole result only on different length in Array#flatten!

  • Remove leftover code in Array#flatten!

  • Make Array#transpose compliant

  • Make Array#shuffle compliant

  • Cleanup Array#replace

  • Cleanup Array#length

  • Fix Array#flatten! changed check

  • Cleanup Array#clone

  • Cleanup Array#<<

  • Cleanup and consistency fixes for Array#flatten!

  • Cleanup and consistency fixes for Array#flatten

  • Cleanup and consistency fixes for Array#==

  • Cleanup and consistency fixes for Array#-

  • Cleanup and consistency fixes for Array#+

  • Cleanup and consistency fixes for Array#*

  • Cleanup and consistency fixes for Array#&

  • Cleanup and consistency fixes for Array.try_convert

  • Cleanup and consistency fixes for Array.new

  • Revert: RakeHelper

  • Fix RakeHelper for 1.8

  • Add general purpose RakeHelper class for opal gems to use

  • Update docs on compiler output to reflect current status

  • Partial rewrite of CallNode

  • Fix Time#+ and Time#-

  • Initial commit of foo[bar] += baz, support

  • formatting fix

  • link to all documentation files from home.md

  • Move require() and auotload() resolve logic into DependencyResolver class

  • Add Template.paths as list of registered templates (#412)

  • Merge pull request #410 from mojavelinux/kernel-warn implemented Kernel#warn

  • Use self (instead of this) for obj reference in all super calls

  • Fix private method error (Parser#do_parse)

  • Seperate grammar(parser) and lexer into 2 classes

  • Fix compiler flag for dynamic require errors

  • Explicitly add compiler options to compiler and cli runner

  • Make MatchData more compliant

  • Cleanup Module#append_features

  • Cleanup Module#ancestors

  • Cleanup Module#alias_native

  • Cleanup Module#alias_method

  • Cleanup String#rstrip

  • Cleanup String#rjust

  • Opal::Compiler as sole compiler class

  • Generate opt args in def before outputting vars to avoid missed yields

  • Use correct opal-sprockets

  • Use Opal::Compiler as main compiler class

  • Cleanup node hierarchy

  • Rename Nodes::Node to Nodes::Base

  • Keep nodes under Opal::Nodes namespace

  • Cleanup parser a little

  • Clean up various helper methods

  • Clean up a load of compiler nodes

  • Compiler iters using compile nodes (needs a rewrite)

  • Some more nodes

  • masgn compiler node

  • Use js_truthy helper instead of parser version

  • push js_truthy parts explicitly

  • Add IfNode for compiled nodes

  • Use compiler nodes to process super calls (and defined super)

  • Add compiler nodes for rescue/ensure and case/when

  • Add some definition nodes

  • Generate class sexps using ClassNode

  • Some more nodes for compiler

  • Add YieldNode compiler nodes

  • Convert some more process_x parser statements into nodes

  • Add a few more compiler nodes

  • Some more node generation

  • Clean up some new compiler nodes

  • Initial commit on reworking parser into generator nodes

  • Add basic encoding support and String byte operations

  • Cleanup MatchData#begin

  • Cleanup MatchData.new

  • Cleanup MatchData#to_n

  • Cleanup MatchData#to_s

  • Cleanup MatchData#values_at

  • Move MatchData to its own file

  • Cleanup MatchData#captures

  • Cleanup MatchData#begin

  • Cleanup String#upcase

  • Make String#gsub compliant

  • String#lines is not an alias of String#each_line

  • String#chars is not an alias to String#each_char

  • Set special vars to nil when the parameter is nil in Regexp#match

  • Set special vars to nil when the parameter is nil in Regexp#=~

  • Cleanup Regexp#to_n

  • Cleanup Regexp#source

  • Make Regexp#match compliant

  • Make Regexp#=~ compliant

  • Cleanup Regexp#inspect

  • Cleanup Regexp#=~

  • Make Regexp#=== compliant

  • Cleanup Regexp.new

  • Cleanup Range#to_s

  • Cleanup Range#min

  • Cleanup Range#max

  • Add missing Range#first

  • Cleanup Range#exclude_end?

  • Cleanup Range#eql?

  • Cleanup Range#each

  • Make Range#last an alias

  • Cleanup Range#cover?

  • Cleanup Range#==

  • Cleanup Range attr_readers

  • Cleanup Proc#arity

  • Cleanup Proc#lambda?

  • Cleanup Proc#call

  • Make Proc#new compliant

  • Cleanup Boolean#to_n

  • Cleanup Boolean#to_s

  • Cleanup Boolean#==

  • Cleanup Boolean#^

  • Cleanup Boolean#|

  • Cleanup Boolean#&

  • Undefine Boolean.new

  • Cleanup BasicObject#instance_exec

  • Cleanup BasicObject#instance_eval

  • Cleanup BasicObject#send

  • Cleanup BasicObject#==

  • Cleanup Numeric#zero?

  • Cleanup Numeric#upto

  • Cleanup Numeric#to_n

  • Cleanup Numeric#inspect

  • Make Numeric#times compliant

  • Fix Numeric#nonzero? when its a Number object

  • Cleanup Numeric#to_s

  • Cleanup Numeric#pred

  • Cleanup Numeric#odd?

  • Cleanup Numeric#nonzero?

  • Cleanup Numeric#next

  • Cleanup Numeric#integer?

  • Cleanup Numeric#hash

  • Cleanup Numeric#floor

  • Cleanup Numeric#even?

  • Cleanup Numeric#chr

  • Cleanup Numeric#ceil

  • Cleanup Numeric#abs

  • Make Numeric#downto compliant

  • Cleanup Numeric#coerce

  • Make Numeric#step compliant

  • Add openssl for rubinius from standard lib gems

  • Fix String#chomp wrong check for separator type

  • Make String#chomp compliant

  • Make String#match compliant

  • Cleanup String#lstrip

  • Cleanup String#ljust

  • Cleanup String#length

  • Some Numeric#coerce fixes

  • Cleanup Module#===

  • Cleanup String#inspect

  • Cleanup String#index

  • Make String#include? compliant

  • Make String#equal? an alias to #===

  • Cleanup String#end_with?

  • Make String#casecmp compliant

  • Cleanup String#capitalize

  • Cleanup String#downcase

  • Cleanup String#count

  • Cleanup String#clone

  • Cleanup String#chr

  • Cleanup String#chop

  • Cleanup String#empty?

  • Make String#each_line compliant

  • Cleanup String#%

  • Cleanup String.new

  • Fix String#== in case of undefined _isString

  • Cleanup String#[]

  • Cleanup Array#slice!

  • Cleanup Array#shuffle

  • Make Array#sort and Array#sort! compliant

  • Cleanup Kernel#to_s

  • Remove Kernel#to_str

  • Fix wrong Regexp#match spec

  • Fix String#== Did you know in JavaScript new String("lol") == new String("lol") is false but new String("b") > new String("a") is true?

Now you know, and I do too.

  • String includes Comparable, remove the useless methods

  • Make Comparable compliant

  • Fix String#index returning a string

  • Make String#+ compliant

  • Cleanup String#*

  • Fix String#=~ check for String parameter

  • Cleanup String#chars

  • Cleanup String#center

  • Add block support to Struct.new

  • implemented Kernel#warn

  • also fixes invalid return from StringIO.read

  • Add some missing combinations to Time#strftime

  • Undefine Numeric.new

  • Fix a JSON spec

  • Some code tidy-ups in parser.rb

  • Fix Hash#to_json key generation

  • Clean up common code between defn and defs

  • Reduce number of method combinations used in process_def

  • fixup! Add the github:upload_assets task to attach files to realeses 1.8 style hashrockets…

  • Add the github:upload_assets task to attach files to realeses

  • Kernel#instance_variables should not include private _klass and _id vars

  • Some compliancy fixes for the JSON stdlib

  • Add Opal.cget to get a fully scoped constant

  • Fix Array#to_n and Hash#to_n

  • Objects do not have private methods (private_methods !== methods)

  • Anon modules should have their own constant scope

  • Add Kernel#eval to stdlib/opal-parser

  • Fix sexp level when processing a wrapped begin; end block

  • Support anonymous classes in Module#name

  • Fix bug so instance_methods of bridged classes acts correctly

  • Fix String#== to accept string objects

  • Fix super() when used inside a block - to support define_method and normal iters

  • Fix Module#append_features to not override class defined methods

  • Quick fix for Kernel#define_singleton_method for classes

  • Define modules onto parent scope literal (Opal.A.B.C)

  • Numeric#<=> should return nil on failed coercion

  • rbx 2.0 mode, allowing failures this time

  • Add some basic Numeric coercion

  • Enable some array specs

  • Use rbx 19 mode in travis

  • Enable some more Class.new specs

  • Opal now supports mspec mocks/stubs. Enable some specs.

  • Support opening repl with an existing ruby file

  • Enable const_missing in repl

  • Add rubinius to travis rubies

  • Add some filters for recent changes to Kernel#Integer()

  • Improve Numeric#is_a? with Integer.=== and Float.===

  • Classes created with Class.new should have their own scope

  • More Kernel#Integer compliancy

  • Add Numeric#nan?, Numeric#finite? and Numeric#infinite?

  • Add Kernel#Float

  • Make Kernel#Integer compliant

  • Inherited constants are ignored when defining a new class

  • Fix bug where colon2 was being processed as an array, not sexp

  • Temporarily fix 1.8.7 builds Waiting for racc: ruby/racc#32

  • Fix Struct inheritance

  • Use Opal::Builder to simpify opal-parser.js

  • Make sure operators parse correctly when used as method names (fixes

  • Some slight code clarity

  • Sexps should use #type instead of dereference

  • Rename core_ext.rb => sexp.rb

  • Remove last few edge cases still using arrays instead of sexps

  • Add Opal::Sexp instead of using Arrays for sexps

  • Merge pull request #401 from elia/fix-defined Add the defined spec

  • Add the defined spec with failing (32) examples inside "bugs"

  • Remove debugging output

  • Catch just NameError for #defined? with colon2

  • A more complete #defined? implementation for gvars

  • Regexp gvars ain't defined if nil

  • One line's better

  • Add Kernel#respond_to_missing? along with #defined? support

  • Now we can raise safely

  • It's lisp right?

  • Second attempt at defined? :colon2

  • Indentation

  • Missing quotes

  • Try to provide an implementation for process_defined with :colon2

  • Change Opal.dispatch_super to be just a super finder

  • Unexpectedly is "class variable"

  • Name anonymous classes when assigning to a constant

  • Remove defines_[defn|defs] flags from compiler These flags are no longer used, and exact targets of these methods are determined at runtime instead of being hardcoded to the compiler.

  • Fix some ternary operators inside #process_defined

  • Subclasses should inherit contants from superclasses, and modules should donate constans to their target module/class.

  • Improve Module#constants etc by manually storing constants in scopes

  • Added support for more #defined? args

  • Add Kernel#eval directly inside corelib

  • Add support for #defined($gvar) and #defined?(yield)

  • Avoid variable shadowing (could lead to errors in 1.8)

  • Better error message for unsupported #defined? args

  • Methods defined on BasicObject should also be donated to bridged classes

  • Methods defined inside block should donate to modules (if inside module)

  • Support 'Module::foo bar' style command calls

  • Fix Array#flatten to try and convert values using to_ary

  • fixup! Use buidler instead of raw require parser for CLI

  • Add an example node http server

  • Use buidler instead of raw require parser for CLI

  • Add Pathname#absolute? and #relative?

  • Add a basic Pathname class (almost a stub)

  • Try to convert the passed class in Native.is_a?

  • Add some missing Kernel, Module methods needed for rspec

  • Add Regexp.union initial implementation

  • Fix cli bugs introduced in last cli bug fixing fix

  • Implement Module#<

  • Hash#store is an alias of Hash#[]=

  • Hash#clone should return subclasses

  • Fix bug which stopped anon classes being in a super chain

  • Fix bug where anonyous modules broken when included in anonymous class

  • Add a stubbed Thread implementation for stdlib

  • Add stdlib placeholders for File and Dir

  • Update Opal CLI with specs and -r option

  • Fix constant name regex in Module methods

  • Kernel#=== should call == on recv with other

  • Fix Kernel#instance_variables to prefix vars with '@'

  • meta classes need _methods property to allow singleton def methods

  • Add some stub files for common stdlib sources

  • Support meta/singleton classes in super hierarchy chains

  • Make sure alias_method donates new methods to module includees

  • Support Module#autoload in RequireParser

  • Opal.use_gem now loads runtime dependencies by default

  • Filter out a new broken spec in rubyspec update

  • Rename docs to camel_case

  • Build runtime with const_missing disabled

  • Merge remote-tracking branch 'wiki/master'

  • [opal-repl] ^D/EOF should exit repl

  • Improve parser/codegen support for paren expressions (fixes #291)

  • Allow begin...end blocks to be used as expressions (fixes #147)

  • Raise on negative position in StringIO#seek

  • Add SystemCallError and Errno, StringIO needs it

  • Fix cli.rb to report errors occuring inside node

  • Support one-liner rescues (rescue_mod) (fixes #355)

  • Make opal-repl handle undefined references better

  • Make sure if/else if/else parts line up in generated code

  • Implement Enumerable#to_set inside set.rb

  • Slightly cleanup class declaration generated code

  • Module do not need a constructor to be generated

  • Stop including opal/parser.rb twice in opal-parser.js

  • Move Opal::Fragment into opal/fragment.rb

  • Fix bug in parsing keywords as method names (fixes #390)

  • Fix bug with accessors defined in modules (fixes #388) Accessors defined in modules were not being inherited by classes that included the module. This commit fixes that bug by adding accessors to the donate list which a module keeps track of.

  • Fix Hash.[] with single Array parameter

  • Add specs from rubyspec

  • One day_spec from rubyspec

  • Fix raise message in Module#instance_method

  • Implement Module#instance_method and fix Method and UnboundMethod

  • Alias this, ClassName and ModuleName to self

  • Add Time.mktime implementation with specs

  • Code layout

  • An attempted implementation of Module#remove_method

  • Add Native::Array#inspect

  • Indentation

  • Numeric#inspect is an alias of #to_s

  • Restore output silencing spec helper

  • Drop the .valueOf in Native.try_convert, doesn't work in IE6

  • Add Native.is_a? to wrap instanceof

  • Add better test coverage for super() inside module chains

  • Add Array#sample

  • Fix Hash#[] to not return inherited properties on hash object

  • Stop using #each_with_object to maintain 1.8 support

  • Enable Enumerable#include? and member? specs

  • opal --eval option can now take a file or string

  • Use def specs from rubyspec

  • Add Enumerable#member?

  • Use each_with_object() in code gen. ftw

  • Support %i() as an alias for %w()

  • Group all #to_n methods under native/ext_spec

  • Fix lexing of '.%\n' - make sure correct lexer state is set

  • Remove debug line left by mistake

  • [SourceMaps] Always increment line numbers when fragments have no base sexp

  • Add bin/opal-repl for simple repl

  • Group all json specs together in spec/opal/json

  • Remove some old opal specs that are duplicates of rubyspecs

  • Fix code generator for (::Foo = bar)

  • Add some more documentation to runtime

  • Actually add some documentation to runtime. Shocking.

  • Clean up boot_module() and boot_class() to be more self documenting

  • Fix indent typo

  • Cleanup boot_module() to be a bit more readable

  • Rename private _singleton property

  • Use IClass for searching up super() tree

  • Rework super to use dep and inc from classes

  • Support sending blocks in super() calls"

  • Make :iter part of relevant :call sexp (not other way around)

  • Always use dispatch_super() for handling super calls

  • Remove zsuper from ast: a super is a super() is a super(x)

  • Fix lambda status of blocks

  • Make Proc#call destructure arguments

  • [Parser] method defs are responsible for returning nil

  • Fix bug in generating methods in irb mode

  • Fix double-return for begin/ensure/end blocks (#378)

  • Quick fix for Enumerable#collect

  • Fix buggy parsing of ternary statements

  • Fix Native::Array#[]

  • Fix Module#ancestors to also include modules in hierarchy

  • Fix some array methods and enable relevant specs

  • Revert commit: Array#uniq can use Array#uniq! implementation

  • Array#uniq can use Array#uniq! implementation

  • Group some more failing specs as due to array subclasses

  • Remove last core/array specs and use rubyspec for all array tests

  • Fix @lex_state after parsing def arglist

  • Merge branch 'master' of github.com:opal/opal

  • Support some more array specs from rubyspec

  • Add named item support to Native::Array

  • Default old to new in Module#alias_native

  • Add a spec for Native::Base#alias_native

  • More improvements to Native::Base#alias_native

  • Fix Native::Base#alias_native specs

  • Add Native#nil?

  • Improve Native::Base alias_native helper

  • Use Array#inspect specs from rubyspec

  • Add some more specs for core/array from rubyspec

  • Remove some old custom specs for range and symbol

  • Fix parsing of <=> and setting of subsequent lex_state Also fixes some bugs in parsing Kernel#<=> specs, so moved those back to rubyspec to use proper parsing.

  • modules should be instances of Module, not Class

  • Add boot_module() to runtime as it differs from boot_class()

  • Use plain js object to store module 'instance' methods

  • Add set.rb to stdlib with basic specs

  • Remove last files from spec/rubyspec/library

  • Use rubyspec for observer and delegate specs

  • Fix rake build_specs

  • Use a different formatter for general browsers

  • Use rubyspec for stringscanner specs

  • Run all specs for Singleton from rubyspec

  • SprocketParser is now RequireParser

  • Fix config.ru path assumptions

  • Silence $stdout for Kernel#p and Kernel#printf specs

  • Add specs for 619d46b76acf9906909f62c1ad9248b26c4f1869 and 8a1f243f11723ab6e7320341a59d148ed20c73c6

  • BasicObject has no #raise

  • Update the instructions on running specs with rack

  • Whitespace

  • Better description for rake spec task

  • Few minor fixes

  • Move some more language specs over to rubyspec

  • Use rubyspec for array lang specs

  • Move some array failing specs to unsupported category

  • Enable shared groups from rubyspec

  • Use rubyspec for some more core/array specs

  • Group all custom hash specs under spec/opal/hash

  • Run all hash specs from rubyspec, and remove custom hash specs

  • Fix 1 spec for Enumerable#drop

  • Cleanup some more filters

  • Group all language filters together

  • Start using language specs from rubyspec

  • Cleanup more filters for array and enumerable

  • Return enumerators in various Enumerable methods to fix some specs

  • Fix Enumerable#find_index when not given object or block

  • Fix Enumerable#take and enable all specs for it

  • Group all Enumerable filters together

  • Use Enumerable specs entirely from rubyspec

  • Use true, false and nil specs from rubyspec

  • Move most of Array specs over to rubyspec

  • Merge branch 'master' of github.com:opal/opal

  • Convert some core/array specs to use rubyspec

  • Fix StringIO#read

  • Fix StringIO#write

  • Add initial support for rubyspec as git submodule

  • Enable Array#[]= to accept a range (with fixed specs)

  • Remove unnecessary isArray check in Array#[]=

  • Fix rubyspecs for Array#[]= accepting index or index, size

  • Fix bug in Array#rindex that broke 2 rubyspecs

  • Array#fetch now gives precedence to default block over default argument This is rubyspec compliant, and fixes 1 filtered spec

  • Raise ArgumentError if count given to Array#first is negative

  • Enable 2 more rubyspecs for redo inside block

  • Support 'redo' keyword inside blocks/iters

  • Initial delegate (stdlib) implementation

  • Merge pull request #375 from DouweM/fix-hash-has_key Fix Hash#has_key? to only return true for properties of its own.

  • Fix Hash#has_key? to only return true for properties of its own.

  • Merge pull request #374 from DouweM/patch-2 Fix Range#each to never include a value out of bounds.

  • Fix Range#each to never include a value out of bounds.

  • Merge pull request #372 from DouweM/fix-range Fix Range#max.

  • Fix Range#max.

  • Merge pull request #373 from DouweM/patch-1 Fix Native::Array#last

  • Fix Native::Array#last

  • Remove old script loader from opal-parser.js

  • Autorun opal scripts in browser

  • Kernel#fail is actually an alias for Kernel#raise

  • Add Kernel#fail

  • Clean up some rubyspec filters

  • Tidy up more filters for rubyspecs

  • Initial support for _ args in block args

  • Merge block and block_args filters together

  • Add some initial specs for block destructuring

  • Merge branch 'master' of github.com:opal/opal

  • Add Native::Array#last

  • Formatting fix

  • Assign masgn parts for block destructuring

  • Support fully parsing of masgn in block destructuring

  • Initial block reworking for block destructuring

  • Merge pull request #364 from rubys/untaint_require_paths allow paths with slashes and dots

  • BasicObject is not a Kernel

  • Add #to_ary to Native::Array and improve code

  • Add Native::Array for array-like object wrapping

  • allow paths with slashes and dots as long as each part of the path starts with a word character

  • Merge pull request #362 from jgaskins/numeric-to_s-with-radices Allow Numeric#to s to use radices

  • Remove unnecessary explicit return

  • Remove DIGIT_MAP constant No longer necessary since we're not converting number bases in Ruby.

  • Use radix conversion in JS

  • Add Numeric#to_s spec from RubySpec's Fixnum#to_s

  • Merge pull request #363 from rubys/safe_build untaint corelib, stdlib, and "safe" requires

  • untaint corelib, stdlib, and "safe" requires

  • Make Numeric#divmod function like Ruby's version JavaScript modulo works differently from Ruby's version when either side is negative. This would cause some pretty frustrating errors in Opal apps. This commit fixes that with a special case if either side of the expression is negative.

  • Allow Numeric#to_s to convert to different radices

  • Introduce Opal.to_ary runtime helper to_ary is used to implicitly convert objects into arrays where they are expected, e.g. mass-assignments

  • Remove therubyracer dependency from Gemfile

  • Remove bin/opal-repl

  • Implement Kernel#<=> with specs (fixes #361)

  • Merge pull request #360 from svoboda-jan/add_time_strftime_formats add formats to Time#strftime and fix %H and %M

  • fix escaping

  • add formats to Time#strftime and fix %H and %M

  • Merge pull request #359 from bitdeli-chef/master Add a Bitdeli Badge to README

  • Add a Bitdeli badge to README

  • Add Native#has_key? and its aliases

  • Remove Browser::LocalStorage and associated specs

  • Disable :const_missing parser option by default This can be re-enabled for development mode.

  • Enable a language/send spec for methods yielding

  • Add Numeric#conj

  • Add Array#transpose

  • Add Numeric#to_int

  • Add SecureRandom.uuid

  • Support 'a, *b, c = x' post variables on mlhs in parser

  • Allow opal-repl to require files from stdlib

  • repl should use :irb mode to support lvars

  • Add bin/opal-repl as simple repl command (uses therubyracer)

  • Persist handled assets between builds in Builder

  • Ensure a proc does not cache passed blocks between invocations

  • Adapt native specs to the latest Native changes

  • Drop null and undefined wrapping in Native

  • Call the native in Native#each if no block is given

  • Fix for last commit not working on 1.8. Vintage.

  • Allow super calls to handle splat args (fixes #350)

  • Merge branch 'master' of github.com:opal/opal

  • Empty rescue body now returns nil (fixes #356)

  • Fix Proc#arity for normal argument numbers

  • Backport some additional Time#strftime() replacers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment