Re: How would shallow generators compose with lambda?

2009-05-15 Thread Brendan Eich
On May 15, 2009, at 2:34 AM, kevin curtis wrote: If a function is used instead of a lambda, do the the same - syntactic or semantic - problems arise? No, because yield in a function makes it a generator, whereas in the lambda proposal extended to treat yield as return/break/continue are

Re: How would shallow generators compose with lambda?

2009-05-15 Thread Brendan Eich
On May 15, 2009, at 1:47 PM, Waldemar Horwat wrote: Did you actually test this? Firefox 2 and up work the same. js g = gen() [object Generator] js g.next() 1 js g.next() 2 js g.next() typein:6: ReferenceError: alert is not defined js alert=print function print() { [native code] } js g =

Re: The Anthropic Side Channel (was: How would shallow generators compose with lambda?)

2009-05-15 Thread Brendan Eich
On May 14, 2009, at 5:42 PM, Mark S. Miller wrote: On Thu, May 14, 2009 at 3:42 PM, Brendan Eich bren...@mozilla.com wrote: On May 14, 2009, at 2:50 PM, Mark S. Miller wrote: If so, did you have a different way of reasoning about the reasons today why finally might not run that I

Re: Dataflow concurrency instead of generators

2009-05-16 Thread Brendan Eich
On May 16, 2009, at 5:50 PM, David-Sarah Hopwood wrote: But you are right that dataflow concurrency is probably not sufficient on its own if we want to make Harmony a practical concurrent language. That is not a goal at this point, and TC39 wouldn't hold the H- release for it. Bear in

Re: Dataflow concurrency instead of generators

2009-05-16 Thread Brendan Eich
On May 16, 2009, at 9:29 PM, David-Sarah Hopwood wrote: (Implementation complexity and performance are also important, but personally I consider them to be lower priorities than safety and expressiveness -- especially since safety often has a lower performance cost than many people believe.)

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-17 Thread Brendan Eich
This may be breaking a butterfly on a wheel, but I am game if it improves the state of the strawman proposals. On May 15, 2009, at 7:16 PM, David-Sarah Hopwood wrote: My point was that the example of 'yield (foo)' (that is, yield as a prefix operator applied to the expression '(foo)') shows

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-17 Thread Brendan Eich
On May 17, 2009, at 11:00 AM, Brendan Eich wrote: Python differs from JS by having only assignment statements, not assignment expressions, which simplifies the problem a bit, as the grep output cited above shows. Of course this makes trouble with automatic semicolon insertion, unless

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-17 Thread Brendan Eich
On May 17, 2009, at 11:00 AM, Brendan Eich wrote: Bean-counting productions in a traditional bottom-up grammar is also silly given how many are required for ES1-3. From the patch, notice all the existing specialized NoIn/NoBF/NoNode variants in parser/ Grammar.y (NoBF = No Brace at Front

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-17 Thread Brendan Eich
On May 17, 2009, at 12:43 PM, Mark S. Miller wrote: On Sun, May 17, 2009 at 11:00 AM, Brendan Eich bren...@mozilla.com wrote: Analogous to direct vs. indirect eval in ES5 (15.1.2.1.1), there is no purely syntactic specification for what Neil proposes. A runtime check is required. So I

Re: yield syntax

2009-05-17 Thread Brendan Eich
On May 17, 2009, at 5:05 PM, David-Sarah Hopwood wrote: Brendan Eich wrote: On May 17, 2009, at 12:43 PM, Mark S. Miller wrote: On Sun, May 17, 2009 at 11:00 AM, Brendan Eich bren...@mozilla.com wrote: Analogous to direct vs. indirect eval in ES5 (15.1.2.1.1), there is no purely syntactic

Re: Objects for Number, String, Boolean, Date acts like their native counter part

2009-05-17 Thread Brendan Eich
On May 17, 2009, at 5:14 PM, David-Sarah Hopwood wrote: Biju wrote: [behaviour of wrappers] is weird... Why cant we make objects for Number, String, Boolean, Date acts like their native counter part? That will be what an average web developer expecting. And I dont think it will make existing

Re: Catchall proposal

2009-05-17 Thread Brendan Eich
Waldemar gave feedback http://wiki.ecmascript.org/doku.php?id=strawman:catchalls#feedback Waldemar's main point is a good one, which caused me to be hostile to catchalls for years: Catchalls climb the meta ladder. Primitive actions such as checking for the existence of a property when

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-17 Thread Brendan Eich
On May 17, 2009, at 11:48 AM, Brendan Eich wrote: On May 17, 2009, at 11:00 AM, Brendan Eich wrote: Python differs from JS by having only assignment statements, not assignment expressions, which simplifies the problem a bit, as the grep output cited above shows. Of course this makes

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-18 Thread Brendan Eich
On May 18, 2009, at 2:25 AM, Igor Bukanov wrote: The remedy for this is simple - the generator can be created using explicit call like Generator(f, arg1, ... argN). This would turn any function into a generator and would allow for runtime checks for eval. You mean yield, not eval, right?

Re: yield syntax (diverging from: How would shallow generators compose with lambda?)

2009-05-18 Thread Brendan Eich
On May 18, 2009, at 11:53 AM, Neil Mix wrote: But for this to be true, we would need to use the direct-eval detection hack I mentioned previously. On the plus side, this would allow for feature detection of generator support, right? (Is there any other way to detect generator support?)

Re: yield syntax

2009-05-19 Thread Brendan Eich
On May 19, 2009, at 2:00 PM, David-Sarah Hopwood wrote: *If* it is allowed, then it should be two. It would be very surprising if foo(a = b, c); had two arguments (as it does), but the above expression with yield had one. But I agree that it may be better not to allow it. Good; it was a

Re: yield syntax

2009-05-19 Thread Brendan Eich
On May 19, 2009, at 2:08 PM, David-Sarah Hopwood wrote: A more explicit alternative is to require some kind of decoration on the function definition, e.g. (just a straw man): function generator foo() { ... } Or just (we discussed this briefly last summer in Oslo): generator foo() { ... }

Re: The Anthropic Side Channel (was: How would shallow generators compose with lambda?)

2009-05-21 Thread Brendan Eich
On May 16, 2009, at 11:25 AM, Mark S. Miller wrote: On Fri, May 15, 2009 at 2:26 PM, Brendan Eich bren...@mozilla.com wrote: [...] but plain old iloop DOS prevention as practiced in browsers does *not* reload the page. And the browser APIs are full of ways to detect that finallys didn't

Re: The Anthropic Side Channel (was: How would shallow generators compose with lambda?)

2009-05-21 Thread Brendan Eich
On May 21, 2009, at 10:41 AM, Brendan Eich wrote: Clicking Stop then terminated the loop, and as with IE, the finally ran, as er, the finally did *not* run. /be javascript:alert(x) confirmed by alerting 8 not 7. ___ es-discuss mailing list

Re: Spawn proposal strawman

2009-05-21 Thread Brendan Eich
On May 21, 2009, at 4:15 PM, Kris Kowal wrote: Upon further reflection, I'm not sure that parse(program:String):AST would serve the purpose of fast sandboxing. The intent of splitting parse and execute is to reduce the cost of execution, so that modules can be reused in many small sandboxes.

Re: Explict Memory Managment

2009-05-22 Thread Brendan Eich
As Ash points out, there's no memory-safe way to implement obj.kill() short of a full GC. There is no way JS will lose memory safety, ever! What's more, we shouldn't expose a gc() call. It would only be abused over time. Even if it were used well at first for a given browser engine (or

Re: Explict Memory Managment

2009-05-22 Thread Brendan Eich
On May 22, 2009, at 1:05 PM, David Semeria wrote: Swap out to disk - sorry I thought that was implicit There's no disk on some devices. Anyway, that's up to the OS. Advisory calls could help but we need some real examples, or better: evidence from real apps, before inventing advice APIs

Re: Explict Memory Managment

2009-05-22 Thread Brendan Eich
On May 22, 2009, at 1:27 PM, David Semeria wrote: On Fri, 2009-05-22 at 11:46 -0700, Brendan Eich wrote: As Ash points out, there's no memory-safe way to implement obj.kill() short of a full GC. There is no way JS will lose memory safety, ever! Why can't the deleted object still exist

Re: Explict Memory Managment

2009-05-22 Thread Brendan Eich
On May 22, 2009, at 1:53 PM, David Semeria wrote: First, null is not a value in the sense of object value. An object takes up arbitrary space associating property names with values. You're possibly confusing reference and referent again. That's very likely - I have only a very rudimentary

Re: Explict Memory Managment

2009-05-22 Thread Brendan Eich
On May 22, 2009, at 2:06 PM, Brendan Eich wrote: On May 22, 2009, at 1:53 PM, David Semeria wrote: First, null is not a value in the sense of object value. An object takes up arbitrary space associating property names with values. You're possibly confusing reference and referent again

Re: Future proof use strict;

2009-05-22 Thread Brendan Eich
On May 22, 2009, at 2:54 PM, Michael Schurter wrote: Essentially my fear is that the meaning of use strict becomes ambiguous when future versions of ECMAScript are released (6 and beyond). The Web doesn't rev just because a new edition of the standard comes out. If only we could use

Re: How would shallow generators compose with lambda?

2009-05-28 Thread Brendan Eich
On May 14, 2009, at 2:10 PM, Mark S. Miller wrote: On Thu, May 14, 2009 at 1:22 PM, Brendan Eich bren...@mozilla.com wrote: On May 14, 2009, at 12:24 PM, Jason Orendorff wrote: 3. When a lambda yields, [...] there may be other functions on the stack, in between. You can't always statically

Re: How would shallow generators compose with lambda?

2009-05-28 Thread Brendan Eich
On May 28, 2009, at 11:48 AM, Jim Blandy wrote: This is just a desugaring of some nested lets, but we still have yield capturing many frames. If this doesn't work, lambda is really useless. Dave replied, but I wanted to join in agreeing on the following: For what it's worth, speaking as

Re: ToPropertyDescriptor and [[DefineOwnProperty]], regarding Object.defineProperty

2009-06-01 Thread Brendan Eich
On Jun 1, 2009, at 1:47 PM, Allen Wirfs-Brock wrote: Jeff Walden wrote: 0. Throughout this email any reference to a property descriptor refers to the specification type, not to the reification of one as exposed by Object.getOwnPropertyDescriptor or to the object taken as an argument by

Re: JSON parser grammar

2009-06-03 Thread Brendan Eich
On Jun 3, 2009, at 11:12 AM, Oliver Hunt wrote: 1.) leading zeros are parsed as decimal numbers (octal seems like a bug no matter what, per MarkM) IE8 and V8's JSON implementation, and json2.js at json.org all interpret 010, as octal (eg. 8), and 009 as 9 Those look like bugs ;-). The

Re: Date.prototype.toISOString and Invalid Date

2009-06-10 Thread Brendan Eich
On Jun 10, 2009, at 8:48 AM, Allen Wirfs-Brock wrote: I believe that support for ISO dates in ES5 is intended to provide a standard interchange format for dates, not for providing a locale customized format for human consumption. Since ISO 8601 apparently doesn't provide an encoding for

Re: Array#indexOf and Array#lastIndexOf question

2009-06-14 Thread Brendan Eich
On Jun 14, 2009, at 8:24 PM, John-David Dalton wrote: I noticed that most Array methods perform [[HasProperty]] checks on the index values. Array#indexOf and Array#lastIndexOf do not. Firefox 3, Safari 4, Chrome 2 all seem to check [[HasProperty]] for Array#indexOf and lastIndexOf. Is this an

Re: Another de-facto insecurity we need to fix in ES5

2009-06-15 Thread Brendan Eich
For ES5, this is a tempest in a teapot. We at Mozilla are trying to remove assignable __proto__ in a near-term release, except in these two useful and (AFAIK) safe cases: * A newborn with no other properties. * A recent-born in the midst of initialization via evaluation of its object

Re: Another de-facto insecurity we need to fix in ES5

2009-06-18 Thread Brendan Eich
On Jun 17, 2009, at 3:34 PM, Mark S. Miller wrote: On Mon, Jun 15, 2009 at 9:23 PM, Brendan Eich bren...@mozilla.com wrote: For ES5, this is a tempest in a teapot. We at Mozilla are trying to remove assignable __proto__ in a near- term release, Hi Brendan, this is wonderful news

Re: Another de-facto insecurity we need to fix in ES5

2009-06-18 Thread Brendan Eich
On Jun 17, 2009, at 9:54 PM, Allen Wirfs-Brock wrote: I agree that it is problematic to spec. things related to extensions that are not part of the spec. In this particular case I wouldn't talk about __proto__ at all. What I would do is specify that the value of an object's [[Prototype]]

Re: extension modules

2009-06-22 Thread Brendan Eich
On Jun 22, 2009, at 3:46 PM, kevin curtis wrote: Alternatively, ecmascript in the tracemonkey, v8 and nitro generates x86/ARM code. Maybe there could be a ecmascript subset which generates fast machine code for algorithmic intensive code. ie ignores global object and prototype and is maybe

Re: Why decimal?

2009-06-23 Thread Brendan Eich
On Jun 23, 2009, at 12:18 AM, Christian Plesner Hansen wrote: I've been looking around on the web for reasons why decimal arithmetic should be added to ES. The most extensive page I could find was http://speleotrove.com/decimal/decifaq.html. If anyone know other good sources of information

Re: extension modules

2009-06-23 Thread Brendan Eich
On Jun 23, 2009, at 10:03 AM, kevin curtis wrote: The requirement of security and speed don't always coincide! The subset/dialect idea is interesting. It's two-edged. Adding standard subsets leads to case-analysis explosion, a recipe for bugs and reduction of interoperability. How

Re: extension modules

2009-06-23 Thread Brendan Eich
On Jun 23, 2009, at 1:21 PM, kevin curtis wrote: At some point we might have ESn remove ancient cruft so the horizontal arrows might stop pointing rightward. A strong +1 for doing this in ES6. IMO ES5 gives developers a strong backward compatible cross browser foundation for the short/medium

Re: Why decimal?

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 1:49 AM, Christian Plesner Hansen wrote: I don't know, the user doesn't say why this inaccuracy is a problem. It sounds like he's just generally unhappy that arithmetic is approximate. Decimal is approximate too. That's true at very extreme margins only! Decimal does not

Re: Why decimal?

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 9:58 AM, Christian Plesner Hansen wrote: I have concluded that it's too late to fix anything by adding decimal. It's clearly to late to change the number type from binary to decimal. So we are going to let library authors cater to users, and get TC39 out of this

Re: with and scope chain augmentation

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 11:38 AM, Mike Wilson wrote: Jason Orendorff wrote: Eeuuurgh. In that case, what David-Sarah said. What did he say? He said don't do that, to paraphrase. Full quote: The 'with' can be in non-strict code, which is perfectly adequate for implementing a

Re: Why decimal?

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 12:08 PM, Christian Plesner Hansen wrote: The second message in this thread, my first reply to your head-of- thread message, said: Anyway, decimal is not being pushed into JS at this point. At the last face-to-face TC39 meeting, we changed direction to explore

Re: Why decimal?

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 12:13 PM, Brendan Eich wrote: We can only focus on what's next. Our covenants the s/the/that/ proscribe certain features are few: no ES4-style namespaces (Common Lisp packages), nor packages built on them. I reviewed the Harmony announcement message: https

Re: Why decimal?

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 12:13 PM, Brendan Eich wrote: On Jun 24, 2009, at 12:08 PM, Christian Plesner Hansen wrote: I am just as unsure of how to read that. Does at this point mean that it's off the table altogether for harmony or only that it's been postponed until later in the process? Why

Re: Why decimal?

2009-06-24 Thread Brendan Eich
On Jun 24, 2009, at 12:37 PM, Brendan Eich wrote: So let's say ES6 is Harmony. Last message from me on this topic today, I promise. I wanted to encourage the use of Harmony for what's next, over against ES6. The ES3.1 - ES5 experience, and of course many software release renumbering

Re: Operator overloading revisited

2009-06-29 Thread Brendan Eich
On Jun 28, 2009, at 1:24 PM, Mark S. Miller wrote: I note that your symmetric suggestion avoids the problem of most other symmetric overloading systems, like Cecil, of diffusion of responsibility. Diffusion sounds like a problem, a bad thing, but consider (I've quoted this before) the

Re: Operator overloading revisited

2009-06-29 Thread Brendan Eich
On Jun 29, 2009, at 11:55 AM, Mark S. Miller wrote: On Mon, Jun 29, 2009 at 11:21 AM, Brendan Eich bren...@mozilla.com wrote: On Jun 28, 2009, at 1:24 PM, Mark S. Miller wrote: I note that your symmetric suggestion avoids the problem of most other symmetric overloading systems, like Cecil

Re: Operator overloading revisited

2009-06-30 Thread Brendan Eich
On Jun 28, 2009, at 7:05 AM, Christian Plesner Hansen wrote: I'd like to propose an alternative approach that avoids these problems. You could call it symmetric operator overloading. When executing the '+' operator in 'a + b' you do the following (ignoring inheritance for now): 1: Look up

Re: Operator overloading revisited

2009-06-30 Thread Brendan Eich
On Jun 30, 2009, at 10:35 AM, Allen Wirfs-Brock wrote: Pulling back from Mark's and Brendan's programming language metaphysics discussion (which I think is interesting and useful) I just wanted to say that I find Christian's proposal quite interesting. It feels like a natural fit to the

Re: Operator overloading revisited

2009-06-30 Thread Brendan Eich
On Jun 30, 2009, at 1:04 PM, Mark S. Miller wrote: On Mon, Jun 29, 2009 at 10:26 PM, Brendan Eich bren...@mozilla.com wrote: On Jun 29, 2009, at 11:55 AM, Mark S. Miller wrote: Let's try a reductio ad absurdum. This doesn't settle anything since there is no for all claim in Chambers

Re: Operator overloading revisited

2009-07-01 Thread Brendan Eich
On Jul 1, 2009, at 12:48 AM, Christian Plesner Hansen wrote: (1) seems avoidable, though -- *assuming* it is not a phantom cost. We have to deal with the symmetric vs. encapsulated issue, though. But notice that Christian's proposal does not use this in the method bodies! The really nice

Re: String#replace String#match and regexp.lastIndex

2009-07-01 Thread Brendan Eich
On Jul 1, 2009, at 10:08 AM, Steve L. wrote: Opera 9.64 (and other versions I've previously tested this issue with) alerts A: 2, 4, 6, 8 and B: 0. Like you, this is my interpretation of correct handling according to the spec. Opera tends to follow the spec most closely for regex issues, in

Re: Operator overloading revisited

2009-07-01 Thread Brendan Eich
On Jul 1, 2009, at 8:14 AM, Christian Plesner Hansen wrote: This cuts both ways. A multimethod reifies that global (lexically scoped, rather) cache. Sure, I'm not saying it's unique to my proposal. I mention it because it's an important aspect to keep in mind when considering the cost of

Re: Operator overloading revisited

2009-07-03 Thread Brendan Eich
On Jul 3, 2009, at 1:21 AM, Christian Plesner Hansen wrote: Likewise, for user-defined function foo, foo.prototype is writable -- but not so for built-in constructor functions, and not so for classes as sugar (more below). All JS code currently in existence is based on user-defined

Re: Operator overloading revisited

2009-07-03 Thread Brendan Eich
On Jul 3, 2009, at 5:29 AM, Christian Plesner Hansen wrote: This is the critical point. Do you want operator overloading to extend to classic objects (that is, instances of user-defined functions) or to be restricted to the values/classes/types subset? That's not as much a technical discussion

Re: Operator overloading revisited

2009-07-05 Thread Brendan Eich
On Jul 5, 2009, at 7:52 AM, Christian Plesner Hansen wrote: Custom literals is a nasty problem. To work with decimal literals, for instance, the compiler can't be allowed to interpret numeric constants; that has to be delegated to the decimal library. To clarify, we wouldn't make 123 or 3.14

Re: Operator overloading revisited

2009-07-06 Thread Brendan Eich
On Jul 6, 2009, at 6:10 PM, Alex Russell wrote: This point disturbs me. Making classes frozen solves no existing JS programmer problems, introduces new restrictions with no mind paid to the current (useful) patterns of WRT the prototype chain, and introduces the need for a const that only

Re: Harmony classes [Was: Operator overloading revisited]

2009-07-27 Thread Brendan Eich
On Jul 27, 2009, at 2:56 AM, Tom Van Cutsem wrote: Could you point me to a page that explains the rationale behind distinguishing data properties from accessor properties? At first sight, it appears you don't need both since accessor properties can easily subsume data properties. ES5 is

Re: Weak References?

2009-07-31 Thread Brendan Eich
On Jul 31, 2009, at 1:18 PM, Jeff Watkins wrote: Has there been any talk about adding Weak References to EcmaScript? If so, forgive me, because I missed it. Yes, there has been. Searching site:wiki.ecmascript.org weak reference shows some hits. The current place to look is a stub:

Re: Last weeks meeting notes

2009-08-03 Thread Brendan Eich
On Aug 3, 2009, at 10:21 AM, Erik Arvidsson wrote: Discussing whether we want to put setTimeout etc into ECMAScript? There is a clearly a gap between ES and HTML5. How can we close the gap? Execution model needs to be standardized. See current WHATWG work:

Callable RegExp vs. typeof (was: Re: Draft of Function.prototype.bind.)

2009-08-13 Thread Brendan Eich
On Nov 4, 2008, at 10:43 AM, David-Sarah Hopwood wrote: The bug that Brendan and I were referring to was 61911: https://bugzilla.mozilla.org/show_bug.cgi?id=61911 For reference so new readers don't have to look far back in the old thread. On FF3.0.3, a bit of testing reveals that

Re: Callable RegExp vs. typeof (was: Re: Draft of Function.prototype.bind.)

2009-08-13 Thread Brendan Eich
On Aug 13, 2009, at 1:28 PM, Juriy Zaytsev wrote: There was a discussion of this ticket on Hacker News this morning and we had this slight confusion on whether giving RegExp objects a [[Call]] property is permitted by spec http://news.ycombinator.com/item?id=760529 . I thought it was, since

Re: Function.prototype.bind behaviour (call vs apply)

2009-08-21 Thread Brendan Eich
On Aug 21, 2009, at 8:11 PM, Juriy Zaytsev wrote: If `boundArgs` is an array of arguments to bind, then I think you should be able to do this via something like: Function.prototype.bind.apply(targetFn, [thisArg].concat(boundArgs)); // or maybe: boundArgs.unshift(thisArg);

Re: Distinguishing native and host objects

2009-09-02 Thread Brendan Eich
On Sep 2, 2009, at 7:14 PM, David-Sarah Hopwood wrote: You missed my point. Why do *new* abstractions need to have a [[Class]] other than Object? The fact that existing abstractions are defined that way is not a sufficiently good reason. I'm not sure who missed what, but as I pointed out

Re: (function foo(){}).propertyIsEnumerable(prototype): true or false?

2009-09-04 Thread Brendan Eich
On Sep 3, 2009, at 8:48 PM, Allen Wirfs-Brock wrote: ES3, 15.3.5.2, says the prototype property of function instances is enumerable. ES5, 13.2 step 17, says the prototype property of function instances is not enumerable. ES5, 15.3.5.2 also says non-enumerable so at least it is internally

Re: Array comprehension syntax

2009-09-13 Thread Brendan Eich
This sounds like a binary trade: follow Python and other precedent, or help autocompletion tools. I don't buy it, but it is hard to argue on these terms. Putting the comprehension expression on the right could help, but JS is dynamic: do you really know the type of i in more interesting

Re: ECMA TC 39 / W3C HTML and WebApps WG coordination

2009-09-24 Thread Brendan Eich
On Sep 24, 2009, at 10:48 AM, Maciej Stachowiak wrote: On Sep 24, 2009, at 9:47 AM, Brendan Eich wrote: Probably the best thing to do is to provide detailed technical review of Web IDL via the W3C process. Expertise on both sides of the artificial standards body divide may very well

Re: ECMA TC 39 / W3C HTML and WebApps WG coordination

2009-09-24 Thread Brendan Eich
On Sep 24, 2009, at 11:53 AM, Maciej Stachowiak wrote: This may be difficult for many reasons, but where the spec ends up is less important to me (and if you make me choose either-or, I prefer w3's RF to Ecma's RAND on first principles) than that we have good collaboration without

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-24 Thread Brendan Eich
On Sep 24, 2009, at 2:43 PM, Doug Schepers wrote: [much appreciated information snipped -- thanks!] I really don't see how the review process and accountability could be much more open for the development of Web IDL elsewhere, nor is the burden on reviewers that large... it would simply be

Re: arguments.callee in Harmony

2009-09-24 Thread Brendan Eich
On Sep 24, 2009, at 4:06 PM, Charles Jolley wrote: I'm curious, why not just give anonymous functions a default name like callee. Or perhaps have callee defined in a function scope to represent the function? That seems to be exactly the same as the above; it just makes it easier for

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 4:14 AM, Fabian Jakobs wrote: foo would leak into the global namespace due to implementation bugs in JScript http://yura.thinkweb2.com/named-function-expressions/. Right now I don't see a good solution for this in strict mode. But strict mode is not supported in

Re: ECMA TC 39 / W3C HTML and WebApps WG coordination

2009-09-25 Thread Brendan Eich
Three distinct topics are being mixed up here: 1. Whether to use WebIDL or some unproposed alternative. 2. Whether to use catchall patterns in new WebIDL-defined interfaces. 3. Whether the JS WebIDL bindings should be standardized by Ecma or W3C. The straw man (0. Whether to remove catchall

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 10:31 AM, Charles Jolley wrote: But strict mode is not supported in current or downrev IE. So it is imperative that Microsoft fix these old named function expression name-binding bugs before, or at the same time as, script mode along with all of ES5 are supported in a

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 11:28 AM, Brendan Eich wrote: function compile(...) { eval(var f = function() { + compile_optimized_query(); + }); (Stray ; there in the + chain, oops.) return f; } This can be avoided by putting the var f = outside the eval, if you parenthesize the lambda

Re: ECMA TC 39 / W3C HTML and WebApps WG coordination

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 12:08 PM, Jonas Sicking wrote: On Fri, Sep 25, 2009 at 9:56 AM, Brendan Eich bren...@mozilla.com wrote: My positions are: 1. WebIDL, the bird in the hand (I agree with Sam: go invent something better, come back when you're done). 2. Don't keep perpetuating catchall

Re: ECMA TC 39 / W3C HTML and WebApps WG coordination

2009-09-25 Thread Brendan Eich
I will stop the over-citing madness here and now :-P. The struggle to formalize ArrayLike, which seems like a common goal for ES the core language and for WebIDL's ES bindings, makes me want to give an exception to the catchalls considered harmful for new interfaces injunction. I agree

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 2:24 PM, Charles Jolley wrote: But we can hear feedback, esp. on this list, about hardship adopting strict mode in early ES5 implementations. Mozilla's will be done shortly, and it sounds like WebKit's is coming along quickly too. Feedback based on two interoperable

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 3:22 PM, David Flanagan wrote: Charles Jolley wrote: Has anyone considered providing a more explicit way of testing for this? Maybe a constant that is defined somewhere. Strict mode isn't a global on-or-off thing. Some functions can be strict while others aren't. So

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 3:35 PM, Brendan Eich wrote: Otherwise, what you're testing for is something like is this code currently running in strict mode or was this library loaded under strict mode? Thanks for wiping up after me. :-) David kindly pointed out that what I suggested originally

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 4:07 PM, Charles Jolley wrote: I would think the most useful test would be is strict mode available not am I currently strict since you can assume the later from the former but not the reverse. Not sure how you can assume the latter from the former: if (! function() {

Re: arguments.callee in Harmony

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 4:22 PM, Charles Jolley wrote: Not sure how you can assume the latter from the former: if (! function() { use strict; return this; }()) { use strict; /* I'm an ES5 browser and DEFINITELY in strict mode now; doesn't matter what came before me... */ } Gotcha -- I

Re: ECMA TC 39 / W3C HTML and WebApps WG coordination

2009-09-25 Thread Brendan Eich
On Sep 25, 2009, at 4:57 PM, Maciej Stachowiak wrote: On Sep 25, 2009, at 1:18 PM, Brendan Eich wrote: So if you are doing more ArrayLike interfaces, let's keep talking. Don't let at least my catchalls-considered-harmful statements stop progress on ArrayLikes. Perhaps when catchalls

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-26 Thread Brendan Eich
, split windows, execution model, etc. -- that's what I've been saying on the main thread since the first message, and what Sam's transcription of a private message from me tried to say. Still not sure what your point is, /be -- Yehuda On Thu, Sep 24, 2009 at 3:19 PM, Brendan Eich bren

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-26 Thread Brendan Eich
On Sep 25, 2009, at 11:20 PM, Yehuda Katz wrote: On Fri, Sep 25, 2009 at 11:15 PM, Brendan Eich bren...@mozilla.com wrote: On Sep 25, 2009, at 9:38 PM, Yehuda Katz wrote: Another way to put my earlier concern Sorry, what earlier concern? You are replying to my reply to Doug Schepers

Re: WebIDL

2009-09-26 Thread Brendan Eich
I did not single out Replaceable in my efforts to understand. Sure, but it is certainly odd and I wanted to recount some of the history, just so you'd know not to over-attend to it. ;-) WebIDL comes from OMG IDL, much of the precedent is documented in various online sites, CORBA books,

Re: WebIDL

2009-09-26 Thread Brendan Eich
On Sep 25, 2009, at 11:43 PM, Yehuda Katz wrote: Do we disagree that it is a worthy goal to have a specification that can be understood without having to take a while? I certainly understand the utility in using something with precedent like IDL (for implementors). Perhaps the IDL version could

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-26 Thread Brendan Eich
On Sep 26, 2009, at 6:08 PM, Maciej Stachowiak wrote: - Note: I think catchall deleters are used only by Web Storage and not by other new or legacy interfaces. Seems like a strong reason to change to the proposed API to eliminate the need for a new ES language extension. I previously

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-27 Thread Brendan Eich
On Sep 26, 2009, at 11:16 PM, Cameron McCormack wrote: OK, that is indeed what I’m hearing from you guys. “Host objects may implement these [internal] methods in any manner unless specified otherwise” in ES3 doesn’t sound like it’s particularly discouraging of the different behaviour that Web

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-27 Thread Brendan Eich
On Sep 26, 2009, at 11:28 PM, Maciej Stachowiak wrote: There are methods, but I'm not optimistic that they will cause property reflection to wither. getItem/setItem/removeItem/key/clear methods, plus .length -- not a balanced name-set stylistically, but usable to avoid collisions (my key

Re: Web IDL Garden Hose

2009-09-27 Thread Brendan Eich
On Sep 27, 2009, at 10:41 AM, David-Sarah Hopwood wrote: Brendan Eich wrote: On Sep 26, 2009, at 6:08 PM, Maciej Stachowiak wrote: This may provide a way to implement some of these behaviors in pure ECMAScript. The current proposal does allow [[Construct]] without [[Call]], but not [[Call

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-27 Thread Brendan Eich
On Sep 27, 2009, at 2:57 AM, Maciej Stachowiak wrote: See http://wiki.ecmascript.org/doku.php?id=strawman:catchalls but note objections there, as well as some alternatives discussed in es-discuss@mozilla.org . Thanks for the reference. That does look similar to my suggestion. However, it

Re: Web IDL Garden Hose

2009-09-27 Thread Brendan Eich
3:30 AM, Brendan Eich wrote: I believe we could get rid of custom deleters from the Web platform if Firefox and IE remove support for custom deleters in LocalStorage, refuse to add it back, and refuse to implement it for DOMStringMap. If that happened, I'm sure other browsers and the spec would

Re: Web IDL Garden Hose (was: ECMA TC 39 / W3C HTML and WebApps WG coordination)

2009-09-27 Thread Brendan Eich
On Sep 27, 2009, at 4:15 PM, Maciej Stachowiak wrote: On Sep 27, 2009, at 11:28 AM, Brendan Eich wrote: But there's no point pretending the Web (ES, DOM, etc.) is an example of a well-designed toolkit for building user-facing distributed apps! But we're not really free to discard

Re: The precise meaning of For each named own enumerable property name P of O

2009-10-10 Thread Brendan Eich
On Oct 10, 2009, at 1:09 PM, Brendan Eich wrote: In either case shadowing must be handled. Implementations using the snapshot each object while traversing once approach may see different shadowing effects than implementations that snapshot the whole chain up front and traverse again during

Re: private attributes in objects

2009-10-11 Thread Brendan Eich
On Oct 11, 2009, at 12:23 PM, memo...@googlemail.com wrote: Currently I do use such kind of prototypes: person = new function(name) { this.name = name; } person.prototype = new function() { /* Private */ var id; /* Public */ this.name = ; this.age = 0; this.location = US; } This

Re: private attributes in objects

2009-10-11 Thread Brendan Eich
On Oct 11, 2009, at 1:28 PM, memo...@googlemail.com wrote: Thanks for your answer. This sketch could use a function-valued property of this to use the private id member, for motivation. Does your expression a function-valued property of this mean method? Sure, informally that's a method.

Re: Property Iteration in JSON serialization

2009-10-14 Thread Brendan Eich
The issue is not overriding default for-in behavior (as you can do in JS1.7 via __iterator__). The issue is the default behavior. Waldemar's right, browsers differ on Array enumeration, for some or all Arrays. My observation to TC39 when we last discussed this is that most arrays are

Re: Property Iteration in JSON serialization

2009-10-14 Thread Brendan Eich
On Oct 14, 2009, at 7:01 PM, Allen Wirfs-Brock wrote: Similarly, rather than trying to fully specifying for-in enumeration order (and invariably causing potentially breaking changes for some implementations) I'm focusing on your parenthetical aside: we have precedent in Harmony

Re: Property Iteration in JSON serialization

2009-10-14 Thread Brendan Eich
On Oct 14, 2009, at 8:34 PM, Brian Kardell wrote: Sorry... somehow Waldemar's comment got closed up in my Gmail conversation stack and I missed this comment... If Oliver and Hallvord and Brendan are wrong on the idea that it is at least largely already a de facto standard for non-indexed

<    1   2   3   4   5   6   7   8   9   10   >