Skip to content
Permalink
Branch: master
Commits on Apr 28, 2014
  1. Thread additions, Mutex and Queue

    mieko committed Apr 20, 2014
    Thread.list reports itself as the current thread, and Thread#new
    explicitly disallows creation of threads.
    
    Thread now supports the fiber- and thread-local variable storage
    interface
    
    Mutex and Queue are implemented, and behave as expected, given the
    single-threaded environment.
Commits on Apr 11, 2014
  1. Triage specs in spec/filters/uncategorized.

    mieko committed Apr 11, 2014
  2. Enumerator fixes: Kernel#to_enum and Enumerator#each

    mieko committed Apr 11, 2014
      * Implement Kernel#to_enum as an alias for #enum_for
      * Enumerator#each now accepts arguments
Commits on Apr 8, 2014
  1. Kernel#methods should not return method_missing stubs

    mieko committed Apr 8, 2014
Commits on Apr 7, 2014
  1. Hash fixes: low-hanging fruit.

    mieko committed Mar 27, 2014
      * Hash#delete accepts a block for default value
      * Hash#default= and Hash#default_proc= unset their counterpart.
      * Hash#merge/Hash#update try to coerce with :to_hash
      * Hash#== Checks for value existence in rhs before comparing
      * Hash[] throws proper errors for more malformed argument list "geometries".
    
    Also closes #522 (value existence on rhs)
  2. Support splat args to rescue statements.

    mieko committed Mar 26, 2014
    Add support for:
      rescue SomeError, *expr
    
    Exception matching has been moved to Opal.$rescue to generate more concise
    code for the now-more-complicated logic.
    
    Also closes #508
Commits on Apr 5, 2014
  1. The Specpocalypse: Reorganize spec structure.

    mieko committed Apr 5, 2014
    This is large, complicated, and requires some explanation.
    
     * Rubyspec updated to master, now in `spec/corelib`
     * stdlib tests that were removed from rubyspec now reference their counterpart
       repository in rubysl.  These live in `spec/stdlib`
     * Filters have been moved from `spec/opal/filters` to `spec/filters`, as they apply
       to rubyspec and rubysl specs.
     * The base directory in the rake tasks have changed from `spec/opal` to `spec`, therefore
       a few paths had to be modified, namely ERB template paths.
     * The `rubyspecs` file now lives in `spec`, and have to specify paths relative to itself.
       This file specifies files in either `corelib` or `stdlib`
     * `rubyspecs` has been edited to omit tests that Opal was previously able to parse, but
        can no longer.  These are only omissions related to `SyntaxError`.  An unfortunate
        amount of coverage has been lost here.
     * `spec/filters/uncategorized` has been created.  These contain specs that now fail due to
        upgrading rubyspec, or new specs in rubyspec that fail.  Some of these are re-wordings of
        specs we pass.  No attempt to match these strings with existing filter strings has been made:
        this will be a project onto itself.  No editorializing has been attempted, except to
        allow the Time specs to fail, which have never passed on my machine.  The intent is, these
        entries  will dwindle in the future as bugs are fixed, or they are explicitly moved to `bugs`
        or `unsupported`.
Commits on Apr 4, 2014
  1. Distinguish between single- and double-quoted heredoc identifiers.

    mieko committed Apr 4, 2014
    Single-quoted heredoc identifiers do not process the content for escape
    sequences.
    
    Added tests to ensure:
      * Escapes not processed in `<<'EOD'`
      * Escapes are processed in `<<"EOD"`
      * `<<EOD` is processed as `<<"EOD"`
Commits on Mar 26, 2014
  1. Make String#to_proc return value allow arguments.

    mieko committed Mar 26, 2014
    Among other things, this allows binary operators to work:
    
      (:+).to_proc.call(1, 2)  # => 3
    
    This is most commonly encountered as a result of:
    
        [1, 2].reduce(&:+)
    
    (Note the ampersand.)
Commits on Mar 24, 2014
  1. Make String#split(/re/) obey "limit" argument.

    mieko committed Mar 24, 2014
    We keep the fast path where possible, but otherwise process the limit manually.
Commits on Mar 23, 2014
  1. def and define_method return the method name.

    mieko committed Mar 23, 2014
    This is a Ruby 2.1 change, but as we previously returned nil, this
    is unlikely to be a compatibility issue.
You can’t perform that action at this time.