jQuery Mobile Team Meeting – Oct 11 2012

  • Attending: Todd Parker, John Bender, Jasper de Groot, Jason D Scott, Anne-Gaelle Colom, Gabriel Schulhof

link Todd

  • Preparing for the DC session this week is the main focus
    • Tables for docs, triage/bugs, and 1.3 features (responsive table, panels)
    • Table leads will update the wiki with details before the conference
  • We're carving out time to sit down with the UI team to start planning out the tab widget re-factor slated for 1.4 which will be a converged widget for UI and mobile

link John Bender

  • Navigate all the things
    • second approach is winning in my estimation
    • simple navigate event
    • $.navigate (name up for debate)
      • tracks history
      • smashes url with replace state where possible
      • supplements navigate event by adding storable state to hashchange through history tracking

link Jasper de Groot

  • flagged issues for DC summit:
    • label Dev summit + milestone 1.1.2: fixed toolbar and transition issues
    • label Dev summit + milestone 1.3: RWD tickets
  • will open new issues on dev-summit repo that link to those and give them a table label
    • table 13 Mobile Triage - change into Mobile RWD?
    • table 14 Mobile Bugs
  • still working on:

link Anne-Gaelle Colom

  • Completed listview (api docs)
  • added dismissable to popup options
  • Need to revert 34a32ee
  • Added a few articles to the resources page
  • Preparing todo list for DC (please everyone step in to add what needs documenting that is not a widget):
    • jQuery Mobile api docs
    • hashchange, controlgroup, degradeinputs, events, fieldcontain, grid, init, links, media, navigation,
    • widgets: header, footer, navbar, page loading widget
    • new logo, favicon
    • add missing examples to listview
    • add prefix to event types (in events) for all widgets. The rule is event type does not use prefix where we use trigger and not _trigger
    • change cdn to 1.2.0
    • general events that need to be documented outside of widget: position, virtual mouse events…
    • Fix FF bug (demo does not appear in automatically generated iframe with demo. Hand-made iframes are fine)

link Gabriel Schulhof

  • Messed around some more with returning focus to button after popup closes. Focus management on WP7 is a disaster.
  • Accepted PR for deactivating listview item link when such a link opens a popup
  • Writing unit test for latter, seeing strange behaviour: unit tests explode when I open one more popup
  • Do we cherry-pick new popup features into 1.2-stable?
  • Found an iOS bug (https://github.com/jquery/jquery-mobile/issues/5155)
  • Messed around with trying to visualize deps between files (dot sucks at it)

link Ghislain Seguin

link Jason Scott

  • Fixed issues related to the BlackBerry 10 theme
  • Heads up - New BlackBerry specific css properties for BB10
    • -webkit-overflow-scrolling: -blackberry-touch;
      • Same as -webkit-overflow-scrolling: touch but adds over scroll even when the region doesn't need to scroll (bb10 style).
    • ext-overflow: -blackberry-fade;
      • text fades with a linear opacity gradient left to right

jQuery Core Team Meeting – Oct 08 2012

October 8, 2012
Minutes (Notes) of the meeting of jQuery
Location: #jquery-meeting on Freenode
Attending:
Time: Noon ET

Official Agenda:

jQuery 1.8.3 this week

essential bug fixes before the 1.9 branching

Candidate tickets, if fixable without high risk of other regressions:

Aiming for Thursday

jQuery Developer Summit

Need to contact attendees at your table this week

  • introduction and assessment (determine skill level)
  • make sure they have prerequisites set up
  • tee up some ideas from below based on their skills

Code ideas

  • move the 1.9 deprecated functions to the compat plugin
  • Ditch the makefile
  • Dave to review open tix for other candidates and add to Summit wiki
  • Team can also handle assigned tickets
  • Add infra todo to fix trac and new-ticket page?

Ticket votes for 1.9 (and 2.0, really)

Assigned tickets

jQuery Mobile Team Meeting – Oct 04 2012

  • Attending: Todd Parker, John Bender, Jasper de Groot, Jason D Scott, Anne-Gaelle Colom, Gabriel Schulhof

link Todd

  • Preparing for the DC session this week
  • Team is working on 1.3 features and issues for 1.2.1 and 1.1.2
  • There will be another maintenance release for 1.1 (1.1.2) in the coming weeks. Timing TBD
  • Roadmap draft for the next year close to complete. We'll be refining this a lot as we go, but it maps out the general direction - https://github.com/jquery/jquery-mobile/wiki/Roadmap
  • Plans for UI integration/harmonization are in full swing for the next few months - 1.3 will tackle basic conflicts, 1.4 will include a harmonized tab widget from UI

link John Bender

link Jasper de Groot

link Anne-Gaelle Colom

  • nearly completed listview widget in api docs (needs a few more examples and the final code example) (reached the 10k lines mark on the api docs!)
  • next week:
    • complete listview widget (api docs)
    • update resources page (at least add BB10 theme!)
    • prepare for summit (checklist of what needs doing)
      • if you have items that need to be documented, please let me know

link Gabriel Schulhof

  • Fixed popup issue #5118 (page1 -> dialog -> popup -> page2 <- back)
  • Added navigation sequence tests
  • Fixed #4984 (re-introduce $.mobile._registerInternalEvents)
  • Fixed #5104 (making sure loader event handlers are always called with the loader as “this”)
  • Cleaned up popup
    • Moved some of the inline functions to widget level
    • Got rid of “self” wherever possible
    • Fixed #5123 (when destroying a popup, do not emit “popupafterclose” if the popup is closed)
  • Need to talk about buttonMarkup

link Ghislain Seguin

  • Fixed a couple issues in the builder
  • Added semver tag handling so the builder automagically checks out a workspace when a semver tag is created
  • Prepare for the DC summit
  • Start looking into 1.3

link Jason Scott

jQuery UI Team Meeting – Oct 03 2012

  • Working on new API documentation site.
    • Created single file XML dump.
    • Updated 1.8 docs.
    • Setting up 1.8 site.
  • Working on new download builder.
    • Integrated ThemeRoller.
    • Working through open issues.
  • Working on new jqueryui.com.
    • Added home page, support, development.
    • Added lots of old change logs, still more to do.
    • Need to update links for downloads and CDNs.
  • Implemented new design for blog.jqueryui.com.
  • Finished cross-browser testing for all demos and visual tests.
  • Updated release script to generate themes zip.

Testing Team Meeting – Sep 28 2012

September 27, 2012

Location: #jquery-meeting on Freenode

Attending: Jörn, Richard, Timo

Time: Noon ET

 

QUnit

PRs and issues to review

  • #317 is looking for an assertion method to compare objects with different constructors
  • #320 has an example of loading tests asynchronously. Recommendation is to use autostart=false, then start(), to make that work. Other ideas?
  • Will land pull #323 unless anyone has concerns – just quotes “throws” to make old interpreters not throw up
  • #326 asks for in “inconclusive” assertion, aka “needs a test”. Opinions?
  • #314 – throw up or log a failed assertion when calling start() while already running?
  • Related to #320 and #314 is #309

TestSwarm

  • Blog post about TestSwarm
  • 1.0 Roadmap
  • web site in November? Also needs new logo: https://github.com/jquery/testswarm/issues/128
  • Timo is working on testswarm-browserstack rewrite, will land update soon, makes it a lot more reliable
  • Up next: Improve keep-alive to get rid of timed-out clients faster; should make proper use of the ping-system implemented in TestSwarm recently
  • Richard still working on ua-parser ticket: https://github.com/jquery/testswarm/issues/187

botio/mergatron

jQuery Mobile Team Meeting – Sep 27 2012

  • Attending: Todd Parker, John Bender, Jasper de Groot, Anne-Gaelle Colom, Jason D Scott, Gabriel Schulhof

link Todd

  • 1.2 Final ready for release - working on updating ThemeRoller, Download builder, website, etc. in preparation for launch in the next few days
  • There will be another maintenance release for 1.1 (1.1.2) in the coming weeks. Timing TBD
  • Roadmap for the next year close to complete, team to review after this meeting
  • BB10 theme for jQuery Mobile was released, looks awesome: https://github.com/blackberry/jQueryMobile-BB10-Theme

link John Bender

  • Preso

link Jasper de Groot

link Anne-Gaelle Colom

  • This week I have completed button and popup widgets (api docs), including examples. Popups may need a bit of polishing, so will give this another look tomorrow or this weekend.
  • I will revisit all currently completed widgets and add code examples to methods and events.
  • Then I aim to do listview.

link Gabriel Schulhof

link Ghislain Seguin

  • 1
    Will start working on https://github.com/gseguin/node-amd-builder/issues/4 to remove much of the manual steps involved with adding a new release to the builder.

jQuery Core Team Meeting – Sep 24 2012

September 24, 2012
Minutes (Notes) of the meeting of jQuery
Location: #jquery-meeting on Freenode
Attending: DaveMethvin, timmywil, gibson042, rwaldron, jaubourg (10 minutes)
Time: Noon ET

Official Agenda:

jQuery 1.8.2 shipped — bugs?

Landing common fixes before 1.9/2.0 split

  • Should we tag those 1.8.3? (leave it as pre for now)
  • Please ID those by next Monday (Oct 1)
  • Let’s complete bug fixes before summit (Oct 15)

The split(s) schedule

1.9 split to occur post-Summit (Oct 22)

  • master branch will be 1.9

Remove deprecated features and stabilize

Complete the compat plugin

naming? I don’t like jquery-compat-1.9

  • jquery-compat.js

warns about using the features, patches support back in

1.9 alpha/beta first, incorporate feedback

2.0 split early December?

  • master will stay 1.9 … branch will be 2.0

Ticket votes for 1.9 (and 2.0, really)

SVG support

  • Would like a deeper analysis before official support
  • Okay with landing simple SVG fixes
  • yet another one: http://jsfiddle.net/qqvzM/3/ (via peol)

Trac problems

Assigned tickets

 

jQuery Mobile Team Meeting – Sep 20 2012

  • Attending: John Bender, Todd Parker, Jasper de Groot, Anne-Gaelle Colom, Mat Marquis, Jason D Scott, Gabriel Schulhof

link Todd

link John Bender

link Jasper de Groot

link Mat Marquis

link Anne-Gaelle Colom

  • completed textinput in api docs (doc + inline examples) and added inline examples to search inputs.
  • This week, I want to get buttons done.
  • Then, I am thinking to complete in the following order:
    • Toolbars (header bars, footer bars, navbars)
    • Popups
    • Listview
    • Page Loading Widget

link Gabriel Schulhof

  • Fixed #4994 and #5021
  • Idea for future navigation: make the URL generation a plugin that is, separate URL generation from history tracking/manipulation

link Jason D Scott

  • Added listview option to set the link icon (for 1.2.1)
  • More work on BlackBerry 10 theme (should be released next week at BBJam America)

Ecma/TC39 Meeting – Sep 20 2012

link September 20 2012 Meeting Notes

John Neumann (JN), Mark Miller (MM), Norbert Lindenberg (NL), Nebojsa Ciric (NC), Allen Wirfs-Brock (AWB), Luke Hoban (LH), Paul Leathers (PB), Sam Tobin-Hochstadt (STH), Andreas Rossberg (ARB), Brendan Eich (BE), Erik Arvidsson (EA), Dave Herman (DH), Yehuda Katz (YK), Rick Waldron (RW), Eric Ferraiuolo (EF), Matt Sweeney (MS), Doug Crockford (DC), Alex Russell (AR), Rafael Weinstein (RWS), Waldemar Horwat (WH), Rick Hudson (RH)

link Object.observe Update

(Presented by Rafael Weinstein, Google)

REQUEST SLIDES!

Aug 18th, Released an experimental implementation, spec complete, via special Chromium Build. https://github.com/rafaelw/v8

Updates to strawman:

  • Updating [[Prototype]] qnqueues a "prototype" changeRecord

ChangeSummary.js (experimental library) https://github.com/rafaelw/ChangeSummary

  • Prototypes "diff" view of changes
  • Correct observation of "paths" (eg. o.foo.bar.baz)
  • Array splice projection (minimal ops to syn)
  • Basis for framework usage

YK: Question about splice projections being built in. When splice happens, many records change... is pathologically slow. Fine for v1 to leave it to library code.

RWS: Opted to leave this out... ...explains n^2 issues that arise when changes to an array occur. ...explains rationale for leaving out for the foreseeable future and allow library authors to handle as they see fit for the time being.

DH: How to make a policy decision about "what" to look at in the change of an object. Agrees with this v1 decision, in favor of allowing library optimization patterns to emerge. [We can't determine the "policies" before the needs are fully understood]

AWB: Not just large scale libs, but everyday data type abstractions.

RWS: Sounds like there are specific issues?

AWB: Yes, but not to be addressed in this timeline

MM: Is the synthetic changeRecord adequate for the level of abstraction you may require

AWB: Yes, sufficient.

RW: (shared anecdotal experience writing "Fact" with Object.observe: https://github.com/rwldrn/fact )

RWS: (presenting demo)

ADD LINK

Discussion about "read" notifications and performance concerns.

YK: Willing to move Ember, despite the scale

EF: Did Angular replace all dirty checking?

YK/RWS: Not really possible to remove all dirty checking.

link Observing Computed Properties and Dependencies

RWS: Believe that it is not in scope now or ever.

link Tuning Spec, Implementation Complexity

RWS: ...Is hoping to progress the strawman to harmony. A few slides that discuss remaining issues.

LH: These represent concerns and agreements of several committee members who have been involved.

link Synchronous Delivery?

NO.

link Security Mitigations

Object.getNotifier( frozenObject ) returns null (Out of 3 options: return null, throw, or do nothing notifier)

WH: What happens when the argument is a Proxy?

RWS: Returns the Proxy's notifier

STH: An invariant maintained internally, that if the proxy is frozen it ensures the target is frozen.

ARB: Not sure if this is true.

MM/STH: The proxy cannot say it is frozen if the target is not. Can the proxy say its NOT frozen if the target IS?

WK/MM/STH: Proxy can say it's frozen if AND ONLY IF, the target is frozen.

MM: If the notifier is derived, then the object is frozen, the notifier will continue to work as expected.

Creator of an object:

  1. creates an object
  2. gets the notifier
  3. freezes the object
  4. releases the object

This is an intended mechanism of the Proxy proposal

WH/AWB/MM: Discussion about notifications from frozen objects. The use of the notifier should ONLY be from the provider of the abstraction.

link oldValue

Most use cases would create copy of all observed data

WH: What about accessors?

RWS: accessors don't notify

WH: That's bad.

MM/EA/RWS/AWB: No, this is intended.

RWS: (Explains that getNotifier can be used to build synthetic events for accessors)

RW: Yes, accomplished this while experimenting with "Fact"

RWS: (Revisits demo to show example of what an abstraction over this looks like)

YK: (Supported use story in Ember)

...Mixed discussion about far future notifier patterns:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// no-op, just for example...
function handler( changeRecord ) {
console.log( changeRecord );
}
class Foo {
private @x, @notifier;
constructor(x) {
this.@x = x;
Object.observe(this, handler);
this.@notifier = Object.getNotifier(this);
}
get x() {
return this.@x;
}
set x(v) {
this.@notifier.notify({
object: this,
name: "x",
type: "updated",
oldValue: this.@x
});
this.@x = v;
}
}
var f = new Foo("hello");
f.x = "Hola";
// synthetic change event fired with "changeRecord"
// defined in the set x() accessor

Discussion regarding the feasibility of adding to ES6.

DH: Doesn't need to be in spec to prototype

BE: Worried about sheer weight of work involved in Allen's spec writing.

RH: Moving from strawman to proposal/spec is meaningful to implementor teams.

[some discussion about whether the above construction pattern has efficiency problems; needs implementation experience]

link Conclusion/Resolution

Push for prototype implementations (Chrome already in progress). Encourage others to do the same

Officially Promoted to proposal for ES7.

link Grammar Validation

(Presented by Brendan Eich, Mozilla, Waldemar Horwat, Google, Rick Waldron, jQuery/Bocoup)

Overdue for grammar validation, would be ideal to re-validate.

WH: The following is ambiguous because yield is not a reserved word. It can't even be lexed: boom = yield/area/ height; Note that the current semantic restrictions on where yield expressions can go don't help because they apply after the program has been parsed; with this example you can't even get to the lexing and parsing stages.

Resolution on the yield issue?

link Conclusion/Resolution

AWB will refactor grammar so that yield can only be used within the context of a generator function and yield will not be usable as an identifier there. This will require essentially doubling the number of grammar rules in an analogous way to how the no-in rules are handled today, but on a much larger scale.

BE: Need wider, complete validation that takes into account ASI and noIn.

BE/AWB: Who is going to own this?

link Conclusion/Resolution

Waldemar is going to try to work on this

link Formal Parameter Scope

(Presented by Brendan Eich, Mozilla)

With regard to default formal parameters...

Previously, all to the LEFT are in scope, let *:

1
2
3
4
5
6
7
8
9
var b = "outer";
function f(a = x, b = a * b, c = c * g() ) {
/*
three scopes:
(a),
(a and b)
(a, b, c)
*/
}

Realistically, it should desugar, scope rules included:

1
2
3
4
5
6
7
8
var b = "outer";
function f(a, b, c) {
if ( a === void 0 ) a = x;
if ( b === void 0 ) b = a * b;
if ( c === void 0 ) c = c * ();
function g() {} // will hoist
}

AWB: functions will hoist, let and const will be in the dead zone and will fail, var will hoist and initialize undefined

BE: Can we agree to get rid of let *?

With let x this is an error:

1
2
3
4
function f( a = "a" ) {
let a;
var a;
}

Not let bindings

1
f(a = b, b = 3)

let scope would break var scope: bad let scope with magic to break var scope: bad

ARB: (whiteboard)

1
2
3
4
5
function f(x = (y = 42), y = 41){}
f();
42, 42

DH: My understanding was that temporal dead zone should error all the way to actual "blessed source code" where the binding is initialized.

Remind why only "no read before write"?

BE: 2 years ago in redmond agreement.

AWB: (explains the rationale and current semantics)

DH: is this a distinction worth making, for let, when we're trying to say that let is a better var

MM: let guards were the original reasoning.

DH: let guards should be different from just let

MM/WH: No, they shouldn't be different.

STH: Need to provide an argument beyond that

WH: guarded let should be not be different from a let. One common option for a guard must be a bottom type that lets through anything, but that's impossible with the same behavior if a guarded 'let' differs from a plain 'let'.

DH: This is far future, hypothetical

MM/DH: related to temporal dead zone discussion.

LH: The temporal dead zone opposition is perf

WH/DH: (discussion of complexity for let and const)

DH: I dont want to alienate developers for no good reason (gives supporting argument)

MM: Better to return undefined or immediately error to show where the mistake is made

DH: Want to simplify to "no read before write". The model of let creates a binding and = assigns a value to it. There is no way to explain that this = is different from that =. Refers to Alex's JS is top-to-bottom.

MM: But it's not because you can forward-call functions, because JavaScript allows you to interleave function and var initializations and assignments throughout your program.

DH: (missed not about read barrier)

WH:

ARB: Trying to simulate C semantics within the constraints of a dynamic system.

AWB: Yes, this was the agreement before temporal dead zone. throw if used before init.

MM, WH: Halting further discussion. We frequently eat up time on subjects like this that have already reached consensus. Let's postpone unnec revisitings.

AWB: Ok to revisit for valid reasons...

YK: worried that if no performance issues are found then it wont be revisited.

AR: Points out that there might be real issues with developer understanding. (cites some example, ask to share?)

[[[[[[[[[[[[[[[[[[[[[[[ Temporarily, this happened: Conclusion/Resolution

  • var bindings and are in scope within the function
  • cannot use let to shadow a parameter
  • defaults can refer to any top level binding ]]]]]]]]]]]]]]]]]]]]]]]

link Conclusion/Resolution

Revisit when data is gathered, re: perf or unexpected behaviours

link Array.of Rename?

Recent post on es-discuss from user that doesn't like Array.of

Array.of has been implemented in all of the es6 shim libs (Paul Miller, Axel Rauschmayer, Andrea Giammarchi and others...)

link Array.of()

Makes sense, nice to say and explain. When I reason about a program:

"Here we have an array of elements" (elements, items, numbers, strings)

link Conclusion/Resolution

No change, no revisit.

If we do Foo.new(), it must be identical to new Foo().

link Thin Arrow?

(Presented by Brendan Eich, Mozilla)

We have the fat-arrow, supported by Kevin Smith's research, it's a win. Some voices in the community don't want the unexpected behaviour of the bound lexical this

class, concise methods and fat-arrow are all new, powerful and composable function binding forms.

WH: Don't want two slightly different concepts with a confusingly similar syntax. It would be too difficult for casual users to remember which arrow is which [in the same way as I can never remember in C++ which variant of the ++ operator overload takes an extra dummy argument].

?: Then let's use fat-arrow with an extra 'this' parameter to stand for thin arrow.

WH: That would address the confusion, but is still unnecessary featuritis and doesn't even save much in terms of text, which was its original reason for existence. Saving a couple characters here is not worth complicating the language.

link Conclusion/Resolution

Consensus holds on fat-arrow

link Existential Operator (strawman discussion)

(Presented by Brendan Eich, Mozilla)

Significant desire include a null and undefined check in syntax/operator form (a la coffeescipt)

1
2
3
o = {}
r = o?.p.q.r
r = o?.p?.q.r

Mixed discussion about the needs and use cases as they apply to coffeescript code.

ARB: This is non-compositional

1
2
3
4
o = {}
r = o?.p.q.r
r = (o?.p).q.r
r = o?.p.q.r()

Results in...

1
2
3
4
5
var o, r;
o = {};
r = o != null ? o.p.q.r : void 0;
r = (o != null ? o.p : void 0).q.r;
r = o != null ? o.p.q.r() : void 0;

Non-starter.

DH: Why not an operator that needs to be explicit?

1
o?.p?.q?.r

LH: Why would you ever even use it on the first?

BE: Forget all of the problems with coffeescript's impl, the need exists.

YK: In the common cases, where it works, it works well. Where it doesn't, it falls apart unexpectedly.

WH: What about other contexts such as p?[x], p?.q[x], and p?(x) ? [Note that grammar problems arise for some of those.]

General agreement.

link Conclusion/Resolution

Seems useful, but not now. Semantics are unclear

link Generators

link thisBinding

Generator thisBinding is the thisBinding of the original generator call.

1
2
3
4
5
6
7
class MyArray extends Array {
*iterator() {
let last = this.length;
let next = 0;
while (next < last) yield this[next++];
}
}

link Generator object API?

1
2
3
4
5
6
7
8
9
class MyArray extends Array {
*iterator() {
let last = this.length;
let next = 0;
while (next < last) yield this[next++];
}
}
new MyArray(4, 8, 15, 16, 23, 42).iterator();

...returns a generator instance that will have generator methods

MM: Take a care to expose the APIs that you expect to expose.

DH: Agrees

LH: Specify the generator?

BE: Allen is worried that normative spec will require generators when it's unnec.

DH: spec a simplified generator interface, without semantics, just to define the method interface.

MM: what is the minimal method interface?

DH: send, throw, close

Discussion around specifying a generator contract.

DH: Don't specify what can't be put on generator objects.

AWB: Need something for spec

YK: If everyone implemented iterators with generators

DH: Not super worried about this...

link Conclusion/Resolution

The spec should not specify built in iterators to have 3 extra generator methods (ie send, throw, close) (Currently in draft, needs to be refactored)

Notably: Significant dissent on throwing exceptions for control flow.

Continued discussion of note...

LH: Using a debugger, break on throw, exceptions. Want to catch at the point where they are thrown... on a StopIteration, do I see internals?

DH: Up to the debugger to determine whether or not it should expose

LH: (whiteboard, example misuse of iterator)

BE: Historically, not an issue.

YK: (Question about use of in-band return?)

LH: if this is not an issue, then why not specify

Discussion about protocol specifications, where precedent exists.

link Supplemental tests for Tests 262

SpiderMonkey and v8 are writing tests, can contribute back.

Need parity, it's hard.

link Goals

AWB: January, spec: feature complete.

LH: Multiple implementations?

Concerns about removal of new additions when there isn't enough evidence to support the removal.

Too soon to make cuts when we don't know what to cut.