Re: ES6 lexical temporal dead zone has landed on central

2014-09-18 Thread Philipp Kewisch
Is the AMO compatibility checker powerful enough to detect at least the
first category of required changes? If so I don't think we should make
any more special cases than needed.

While the change is annoying for addon authors, in most cases the
redeclaration is just an oversight and it would improve style to fix it.

Philipp


On 9/18/14 4:51 AM, Bill McCloskey wrote:
 If this change proves to be really disruptive to add-on authors, I wonder if 
 we could just make let behave like var for add-ons? The JS tokenizer 
 could just substitute var for let when parsing code from an add-on 
 compartment. (Bug 1030420 will put add-on code in a separate compartment and 
 it's ready to land soon.) I think that would mostly mitigate the concerns 
 Jeff raised in the previous thread about having to test two configurations.
 
 -Bill
 
 - Original Message -
 From: Shu-yu Guo s...@mozilla.com
 To: Chris Peterson cpeter...@mozilla.com
 Cc: dev-platform@lists.mozilla.org
 Sent: Wednesday, September 17, 2014 5:26:57 PM
 Subject: Re: ES6 lexical temporal dead zone has landed on central

 Well, SM's 'let' extension never really let you redeclare let bindings. What
 happened was that it was too much work to parse function body-level lets as
 actual lets, and so they were parsed as vars, thus allowing
 redeclarations.

 Keep in mind that vars aren't *really* redeclared. When actual semantics is
 closer to erasure semantics: just pretend the second var isn't there. That
 is, consider

   var x = 42;
   var f = function () { print(x); }
   var x = 43;
   var g = function () { print(x); }

 f and g above are closing over the *same* binding of x.

 I would bet that Rust lets you actually redeclare (viz. shadow with a new
 binding in the same scope) , such that if you had the equivalent code in
 Rust above, f and g would close over *different* bindings.

 So having lets behave like vars in that respect is probably going to lead to
 the same crappiness that we have with vars now. Why they didn't allow
 shadowing with a new binding? I don't know, it would be nice -- but perhaps
 was too big a break, and that it would behave strangely, or at least
 surprisingly, with hoisting semantics.

 - Original Message -
 From: Chris Peterson cpeter...@mozilla.com
 To: dev-platform@lists.mozilla.org
 Sent: Wednesday, September 17, 2014 4:37:17 PM
 Subject: Re: ES6 lexical temporal dead zone has landed on central

 On 9/15/14 4:43 PM, Shu-yu Guo wrote:
 If you work with JS that contains `let` bindings, you may start
 encountering
 the following two errors:

1. TypeError: redeclaration of variable foo

   To fix, rename the variable or remove the extra `let` if you are
   assigning to an already-bound variable.

   These are static errors. You may pass your JS through the syntax
   checker
   in the SpiderMonkey shell (-c) to detect them.

 Much of the `let` fallout being reported is from variable
 redeclarations. For compatibility, perhaps TC39 should reconsider
 whether `let` redeclarations are worthy of being static errors.

 JS allows you to redeclare vars. Rust allows you to redeclare variables
 with `let` (even changing the type!). SpiderMonkey's non-standard JS1.8
 allowed you to redeclare variables with `let` (until Shu made it ES6
 compatible). Maybe variable redeclarations are not such a big problem
 for JS developers.

 chris


 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform
 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform


___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: ES6 lexical temporal dead zone has landed on central

2014-09-18 Thread Bobby Holley
It would probably be easy for them to fix, yes. But we have a roughly fixed
amount of capital with addon authors with which to force them to make
compatibility fixes - at some point, some number of them get fed up and
stop updating their code. I'm really not sure that this is a worthy place
to spend it.

+1 to Bill's idea.

On Thu, Sep 18, 2014 at 9:47 AM, Philipp Kewisch mozi...@kewis.ch wrote:

 Is the AMO compatibility checker powerful enough to detect at least the
 first category of required changes? If so I don't think we should make
 any more special cases than needed.

 While the change is annoying for addon authors, in most cases the
 redeclaration is just an oversight and it would improve style to fix it.

 Philipp


 On 9/18/14 4:51 AM, Bill McCloskey wrote:
  If this change proves to be really disruptive to add-on authors, I
 wonder if we could just make let behave like var for add-ons? The JS
 tokenizer could just substitute var for let when parsing code from an
 add-on compartment. (Bug 1030420 will put add-on code in a separate
 compartment and it's ready to land soon.) I think that would mostly
 mitigate the concerns Jeff raised in the previous thread about having to
 test two configurations.
 
  -Bill
 
  - Original Message -
  From: Shu-yu Guo s...@mozilla.com
  To: Chris Peterson cpeter...@mozilla.com
  Cc: dev-platform@lists.mozilla.org
  Sent: Wednesday, September 17, 2014 5:26:57 PM
  Subject: Re: ES6 lexical temporal dead zone has landed on central
 
  Well, SM's 'let' extension never really let you redeclare let bindings.
 What
  happened was that it was too much work to parse function body-level
 lets as
  actual lets, and so they were parsed as vars, thus allowing
  redeclarations.
 
  Keep in mind that vars aren't *really* redeclared. When actual
 semantics is
  closer to erasure semantics: just pretend the second var isn't there.
 That
  is, consider
 
var x = 42;
var f = function () { print(x); }
var x = 43;
var g = function () { print(x); }
 
  f and g above are closing over the *same* binding of x.
 
  I would bet that Rust lets you actually redeclare (viz. shadow with a
 new
  binding in the same scope) , such that if you had the equivalent code in
  Rust above, f and g would close over *different* bindings.
 
  So having lets behave like vars in that respect is probably going to
 lead to
  the same crappiness that we have with vars now. Why they didn't allow
  shadowing with a new binding? I don't know, it would be nice -- but
 perhaps
  was too big a break, and that it would behave strangely, or at least
  surprisingly, with hoisting semantics.
 
  - Original Message -
  From: Chris Peterson cpeter...@mozilla.com
  To: dev-platform@lists.mozilla.org
  Sent: Wednesday, September 17, 2014 4:37:17 PM
  Subject: Re: ES6 lexical temporal dead zone has landed on central
 
  On 9/15/14 4:43 PM, Shu-yu Guo wrote:
  If you work with JS that contains `let` bindings, you may start
  encountering
  the following two errors:
 
 1. TypeError: redeclaration of variable foo
 
To fix, rename the variable or remove the extra `let` if you are
assigning to an already-bound variable.
 
These are static errors. You may pass your JS through the syntax
checker
in the SpiderMonkey shell (-c) to detect them.
 
  Much of the `let` fallout being reported is from variable
  redeclarations. For compatibility, perhaps TC39 should reconsider
  whether `let` redeclarations are worthy of being static errors.
 
  JS allows you to redeclare vars. Rust allows you to redeclare variables
  with `let` (even changing the type!). SpiderMonkey's non-standard JS1.8
  allowed you to redeclare variables with `let` (until Shu made it ES6
  compatible). Maybe variable redeclarations are not such a big problem
  for JS developers.
 
  chris
 
 
  ___
  dev-platform mailing list
  dev-platform@lists.mozilla.org
  https://lists.mozilla.org/listinfo/dev-platform
  ___
  dev-platform mailing list
  dev-platform@lists.mozilla.org
  https://lists.mozilla.org/listinfo/dev-platform
 

 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: ES6 lexical temporal dead zone has landed on central

2014-09-18 Thread Jorge Villalobos
Kris from the Add-ons Team is already looking into this and will message
developers affected by this issue.

Jorge

On 9/18/14, 1:47 AM, Philipp Kewisch wrote:
 Is the AMO compatibility checker powerful enough to detect at least the
 first category of required changes? If so I don't think we should make
 any more special cases than needed.
 
 While the change is annoying for addon authors, in most cases the
 redeclaration is just an oversight and it would improve style to fix it.
 
 Philipp
 
 
 On 9/18/14 4:51 AM, Bill McCloskey wrote:
 If this change proves to be really disruptive to add-on authors, I wonder if 
 we could just make let behave like var for add-ons? The JS tokenizer 
 could just substitute var for let when parsing code from an add-on 
 compartment. (Bug 1030420 will put add-on code in a separate compartment and 
 it's ready to land soon.) I think that would mostly mitigate the concerns 
 Jeff raised in the previous thread about having to test two configurations.

 -Bill

 - Original Message -
 From: Shu-yu Guo s...@mozilla.com
 To: Chris Peterson cpeter...@mozilla.com
 Cc: dev-platform@lists.mozilla.org
 Sent: Wednesday, September 17, 2014 5:26:57 PM
 Subject: Re: ES6 lexical temporal dead zone has landed on central

 Well, SM's 'let' extension never really let you redeclare let bindings. What
 happened was that it was too much work to parse function body-level lets as
 actual lets, and so they were parsed as vars, thus allowing
 redeclarations.

 Keep in mind that vars aren't *really* redeclared. When actual semantics is
 closer to erasure semantics: just pretend the second var isn't there. That
 is, consider

   var x = 42;
   var f = function () { print(x); }
   var x = 43;
   var g = function () { print(x); }

 f and g above are closing over the *same* binding of x.

 I would bet that Rust lets you actually redeclare (viz. shadow with a new
 binding in the same scope) , such that if you had the equivalent code in
 Rust above, f and g would close over *different* bindings.

 So having lets behave like vars in that respect is probably going to lead to
 the same crappiness that we have with vars now. Why they didn't allow
 shadowing with a new binding? I don't know, it would be nice -- but perhaps
 was too big a break, and that it would behave strangely, or at least
 surprisingly, with hoisting semantics.

 - Original Message -
 From: Chris Peterson cpeter...@mozilla.com
 To: dev-platform@lists.mozilla.org
 Sent: Wednesday, September 17, 2014 4:37:17 PM
 Subject: Re: ES6 lexical temporal dead zone has landed on central

 On 9/15/14 4:43 PM, Shu-yu Guo wrote:
 If you work with JS that contains `let` bindings, you may start
 encountering
 the following two errors:

1. TypeError: redeclaration of variable foo

   To fix, rename the variable or remove the extra `let` if you are
   assigning to an already-bound variable.

   These are static errors. You may pass your JS through the syntax
   checker
   in the SpiderMonkey shell (-c) to detect them.

 Much of the `let` fallout being reported is from variable
 redeclarations. For compatibility, perhaps TC39 should reconsider
 whether `let` redeclarations are worthy of being static errors.

 JS allows you to redeclare vars. Rust allows you to redeclare variables
 with `let` (even changing the type!). SpiderMonkey's non-standard JS1.8
 allowed you to redeclare variables with `let` (until Shu made it ES6
 compatible). Maybe variable redeclarations are not such a big problem
 for JS developers.

 chris


 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform
 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform

 

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Intent to ship: CSS Filters

2014-09-18 Thread Max Vujovic
On Sep 16, 2014, at 9:52 PM, Dirk Schulze dschu...@adobe.com wrote:

 
 
 On Sep 17, 2014, at 2:44 AM, L. David Baron dba...@dbaron.org wrote:
 
 On Tuesday 2014-09-16 16:31 -0700, Rik Cabanier wrote:
 On Tue, Sep 16, 2014 at 2:44 PM, L. David Baron dba...@dbaron.org wrote:
 
 On Tuesday 2014-09-16 21:29 +, Max Vujovic wrote:
 == Interop ==
 Safari, Chrome, and Opera currently ship an interoperable implementation
 of CSS Filters behind a -webkit prefix.
 
 Do they have plans to ship without the prefix?  It's not really
 interoperable if it requires different syntax.
 
 Are you suggesting that we should add a '-webkit-filter' property so
 Firefox is interoperable?
 
 No.  I'm suggesting that we should try to ensure that Blink and
 WebKit unprefix sooner rather than later.
 
 Shorthand filters are just supported on HTML content in WebKit and Blink. SVG 
 content exclusively works with the unprefixed filter property which currently 
 just supports a reference to SVG filter elements. Once that is fixed, both 
 platforms will support the shorthand functions on unprefixed filter as well. 
 However, it is unlikely that the prefixed property will be removed soon. 
 Shipping CSS filters in Firefox is a strong signal to web developers. The 
 specification is getting finalized and changes to the existing functions must 
 be compatible to the current implementation in WebKit, Blink and Gecko and 
 will not be accepted for level 1 of the spec.

Thanks for the info, Dirk. I just asked the question on webkit-dev [1] and 
blink-dev [2], which might surface other blockers in those projects. At the 
least, I hope it draws some attention to shipping an unprefixed version.

[1]: https://lists.webkit.org/pipermail/webkit-dev/2014-September/026871.html
[2]: 
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/R2gCfHjNgKs

- Max

 
 Greetings
 Dirk
 
 
 
 -David
 
 -- 
 턞   L. David Baron http://dbaron.org/   턂
 턢   Mozilla  https://www.mozilla.org/   턂
Before I built a wall I'd ask to know
What I was walling in or walling out,
And to whom I was like to give offense.
  - Robert Frost, Mending Wall (1914)

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Reminder: Tree Closing Window, Sat Sep 20, 0900-1300 PT

2014-09-18 Thread Hal Wine
See below for details - to check status, please visit #moc in IRC or
https://status.mozilla.org/en-US/calendar/


Main bug for whistlepig: 1065514


Short Summary:

Mozilla IT will have a infrastructure maintenance window on Saturday, September 
20th, from 0900-1300 PDT. During this window we will be: implementing network 
improvements, upgrading hg, virtualizing part of the ftp service, and various 
developer/build resources will be upgraded. Brief network interruptions and 
reduced network performance in the build environment may be experienced during 
this window.

1046129: move 63.245.214.0/23 from fw1.scl3 to border[12].scl3
1046136: remove load-balancing from network configurations
1046252: releng/dev-services machines needing reboots during TCW
1057717: fw1.scl3 needs to have security-zone anycast deleted from it
1061879: virtualize upload1.dmz.scl3
1064970: remove ospf passive statement for transit links on border1.pao1 and 
border1.sjc2
1064974: test convergence time by removing graceful-restart from border1.sjc2 
1068520: Mercurial webhead upgrade



___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: ES6 lexical temporal dead zone has landed on central

2014-09-18 Thread Jonas Sicking
On Thu, Sep 18, 2014 at 1:41 AM, Bobby Holley bobbyhol...@gmail.com wrote:
 It would probably be easy for them to fix, yes. But we have a roughly fixed
 amount of capital with addon authors with which to force them to make
 compatibility fixes - at some point, some number of them get fed up and
 stop updating their code. I'm really not sure that this is a worthy place
 to spend it.

 +1 to Bill's idea.

Though I also think that developers will appreciate using real JS.
And presumably the current JS semantics were created for good reasons
and actually something that authors ultimately prefer.

So I don't think we should think of converting to standard semantics
here as purely a cost.

Ultimately I think we should check with addon authors before making a
decision one way or another.

/ Jonas
___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: ES6 lexical temporal dead zone has landed on central

2014-09-18 Thread Kent James

On 9/17/2014 7:51 PM, Bill McCloskey wrote:

If this change proves to be really disruptive to add-on authors, I wonder if we could just make 
let behave like var for add-ons? The JS tokenizer could just substitute var 
for let when parsing code from an add-on compartment. (Bug 1030420 will put add-on code in a 
separate compartment and it's ready to land soon.) I think that would mostly mitigate the concerns 
Jeff raised in the previous thread about having to test two configurations.

-Bill


Substituting var for let does not result in code that behaves 
identically to previous code, so I can't see why that would be proposed.


These two snippets give different results:

let s = valid;
{ let s = invalid;}
dump(s);

gives a different result than
var s = valid;
{ var s = invalid;}
dump(s);

If you wanted a reasonable compromise, only flagging the duplicated 
definition of let in strict mode would be a viable solution.


:rkent

___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform