Git Product home page Git Product logo

Comments (6)

fholm avatar fholm commented on August 26, 2024

I've finally gotten through my two crunch-weeks at work and got time to get back working on IronJS, I'll look into this ASAP and make sure we fix it within the next few days.

from ironjs.

otac0n avatar otac0n commented on August 26, 2024

So, the source of coffeescript says this:

if scope.expressions is this
      if o.scope.hasDeclarations()
        code += "#{@tab}var #{ scope.declaredVariables().join(', ') };\n"

The issue is certainly that o.scope.hasDeclarations() is returning a false positive. (not that there is a bug in CoffeeScript...)

The definitions of these in the coffeestript source is something like:

a.prototype.hasDeclarations = function () {
    return !!this.declaredVariables().length
}, a.prototype.declaredVariables = function () {
    var a, b, c, d, e, f;
    a = [], b = [], f = this.variables;
    for (d = 0, e = f.length; d < e; d++) c = f[d], c.type === "var" && (c.name.charAt(0) === "_" ? b : a).push(c.name);
        return a.sort().concat(b.sort())
}

My bet is on sort or concat causing issues. Not sure yet.

from ironjs.

fholm avatar fholm commented on August 26, 2024

Thanks for tracking this down @otac0n, i'm suspecting that there's something going on in that for-loop that isn't kosher with the IronJS parser (just saying, the bug is obviously in IronJS no doubt).

I'm betting either on sort and concat or some of the logic inside the loop.

from ironjs.

otac0n avatar otac0n commented on August 26, 2024
var a = [];
var b = [];
a.concat(b).length;

returns 1.

At this point, I'm almost certain that it is the concat function.

from ironjs.

fholm avatar fholm commented on August 26, 2024

This problem is fixed in 34584ac.
@otac0n: Thanks for locating the source function, finding the exact bug was easy once I knew where to look.

from ironjs.

ScottWeinstein avatar ScottWeinstein commented on August 26, 2024

awesome, thanks!

from ironjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.