ECMA TC39 technical meeting - 19 February 1998

Host: Clayton Lewis, Netscape

Attendees:

  Norris Boyd       (NS)
  Andrew Clinick    (MS)
  Mike Cowlishaw    (IBM, Project Editor)
  Brendan Eich      (NS)
  Waldemar Horwat   (NS)
  Roger Lawrence    (NS)
  Clayton Lewis     (NS)
  Drew Little       (MS)
  Karl Matzke       (SunSoft)
  Mike McCabe       (NS)
  Herman Venter     (MS)
  Rok Yu            (MS)

Morning

The morning was spent reviewing the expected comments on the ISO DIS from the USA national body, confirming their correct resolution in the 1998.01.27 draft for Version 1 (V1), and agreeing minor corrections to that draft. The editor will apply the changes to both versions of the documents; Karl Matzke took notes and will prepare the disposition of comments.

Afternoon

The following lists were propagated from the notes of the 1997.10.10 meeting and updated:

Agreed items for Version 2

  caller (omitted from V1)
  do while
  break to label
  continue to label
  switch
  regexp
  === operator (strict equality)
  conditional compilation
  literal notation
  function closures (expression, nesting)
  reveal __parent__ , __photo__
  arguments object
  exception handling
  toSource  (people want a way to make objects persistent)
  Function.prototype.apply
  instanceof

Other Items in consideration for V2

  binary object
  Date (as presented by Borland in 1997)
  generic sequence operations on a string or an array
  threading issues
  undefined literal, not reserved
  parse {int, float} step point result
  toString extensions
  date to string
  toBoolean (object)
  Hide proto.property
  meta object protocol (MOP)
  package concept

The remainder of the meeting discussed various items from the first list in more detail.

Exceptions

Herman Venter (MS) described his proposal

NS proposal described by Waldemar Horwat

After some discussion the committee agreed on:

Issues:

  1. Should catch rethrow the exception?
  2. Finally?
  3. granularity of exception classes
  4. default rethrow (or not)
  5. scope of caught variable
  6. more than one catch?
  7. use of 'instanceof' as both parameter and expression?

Instanceof

Minor issues agreed. Herman will write up for next meeting.

Do while

Does not handle labeled break and continue. Semicolon missing at very end. Issue from 12.12 needs to be folded into other section 12 subsections. [Herman will write up.] Issues under 12.7 and 12.8 are agreed.

Switch

Needs constraints (tbd) that allow improved optimization. Otherwise OK.

Array and Object initializers

(Sections 11.1.4/5)

Array literal constructors, proposed:

  o=new Array(0,1,2)
  b=new Array(0)

  a=[0,1,2]
  b=[0]
  c=[0,,2]
  d=[0,1,,]         -- d.length = 3
  e=[,1]            -- e.length = 2

Object literal constructors

  o=new Object
  o.p=1             -- same as o['p']=1
  o['*hi*']=2
  o[2]=true

  o={p:1, '*hi*':2, 2:true}        -- ok
  o2={null:3, true:4, false:5}     -- ok, but no
  o3={(x+1):6}                     -- bad
Issues:
  1. Final comma is ignored. Although this rule was disliked, it does permit sparse and empty lists (Consider [], [,], [,,] having lengths 0, 1, 2).
  2. Should the same rule be applied to object initializers (which are even more like C++ syntax)?

Sharp variables

x5=#1={self:#1#}

Under discussion; some members of the committee did not feel that this proposal added much value.

toSource

(The draft does not use sharp variables yet.) Generally agreed. If this becomes a built-in language item, the proposal may not require the use of sharp variables.

Next TC39 (technical/editing) meetings

  1. Interim subcommittee (Clayton/Karl?) to gather ECMA TC39 comments for submission to ISO. No physical meeting required.
  2. Friday 20 March 1998. 10am - 6pm. Redmond, WA.

Mike Cowlishaw (mfc@uk.ibm.com)
1998.02.19 & 1998.03.05