TC 39 meeting

Meeting notes

Andrew Clinick will keep notes this time

Mailing lists

Clayton will take control of this so that the group doesn’t have to rely on ECMA

Groups

Technical Working Group

I18N

Modularity

WAP

Next Meeting

April 29th IBM in San Jose Area

May 20th/21st Microsoft Redmond WA

June 21st in San Jose area

July 12th/13th Netscape San Jose area

Discussion

Number formatting – WH

Couple of approaches

C printf style
Fixed pattern string with fixed grammar.  This works but looking towards the future this could constrain the language.  To allow extension this would take considerable work.
Alternative
See WH’s doc

Questions

Could they be folded into one function?
This could affect extensibility.  It could be added to the prototype
Boolean yes I want scientific or no I don’t as an additional argument to a generic function
Are we going for simplicity or power?
Should lean towards simplicity and leave the complex/powerful features to the I18N library

Comments

Rename insertCommas to be insertSeparator to get round the international issues
The simple non locale specific functions would be a good basis for the core language and leave the locale dependent functions to the I18N library.
MC walked through the Java standard example
Format(before,after,explaces,exdigits,exform,exround) from the Java spec was discussed
Group leaned towards using the simpler features (1st page of WH’s document)
Where should this proposal go – the ECMAScript 3rd edition or post 3rd edition?
If there is a document that is agreeable to the group and tc39 has finished the rest of the 3rd edition of the document it will be in the 3rd Edition
Waldemar Horwat will provide this spec for the next meeting

Dates

Functions to get the date and time from a specific date

A simple solution (that will not impact I18N) will be proposed for Edition 3

Richard Gillam (IBM) will look after this

Undefined

HermanV proposed solution (**insert Hermans text here**)

Herman will provide text to Bill Gibbons for inclusion in the spec

Meeting on 3/30

Scope, conformance and references – assumed to be agreed so no changes required.  I18n might require a change to references

Source text

I18N will require some changes

7, 7.1,7.2

will be effected by I18N which will covered this afternoon

7.4 Tokens

Regular expressions will require a change

NB will address WH’s concerns over grammar and it’s effects on this section

WH will try to get a proposal for the next meeting

RegExp as inconsistent as written up now and not integrated into the language

RegExp requires considerable more work

7.4.2 Keywords

Move try, catch, throw from reserved words to keywords

7.4.3Future Reserved Words

See above

7.5 Identifiers

WH is still on the hook for this and there will be some I18N issues (**insert here**)

7.7.5 Regular Expression Literals

Connected with WH’s work for 7.4

NB to check to see if WH’s work will effect this

Any regular expression work will wait until WH work is presented. NB presented some changes which will be discussed later

7.8 Automatic semi-colon insertion

RegExp anomalies again!

Example:

A

/B

Is this a division or a regular expression?

In the MSFT implementation priority is given to division.  If a / is in a position where a division would be illegal the MSFT implementation attempts a regular expression.

This mechanism was agreed as the way forward for the standard

WH will provide a spec for this

7.8.1

see 7.8

7.8.2

see 7.8

9.8 toString

Bill Gibbons has not done any work on this but will get a spec for the next meeting

10.1.1 Function Objects

No changes

Move to content agreed

10.1.4 Scope chain & Identifiers

No changes

Move to content agreed

10.1.8 Arguments Object

Not Deleted

Move to Content agreed

10.2 Entering an execution context

Move to content agreed

10.2.1 Global Code

Move to content agreed

10.2.2 Eval Code

Move to content agreed

10.2.4 Implementation supplied Code

Move to content agreed

11.1 Primary Expressions

MM has a document on the behavior of missing elements in array initializers

For Object initializers

MM to present document later  **insert link here**

15.1 Global object

Needs constructors.  Again RegExp impacts this object and needs to be added to the spec.  NB will do this for the next meeting.

15.1.2.1 Eval (x)

BG will check to see if there is a difference from V1.  If there is a difference then BG will bring back proposal to group.  BG will verify with doc for next meeting

15.1.2.8 URIencode()

Rok Yu will do this

15.1.2.9 URIdecode()

Rok Yu will do this

15.1.4.2 RegExp

 

15.2.4.3 toSource

Deferred

It’s not in the document so will be deleted from the 3rd edition doc

15.4.4.3 Array prototype.toSource

Deferred

It’s not in the document so will be deleted from the 3rd edition doc

Change to be made to the document for hasDelegate

15.5.4.9 String.prototype.match

15.5.4.10 String.prototype.replace

WH asks about special treatment of specific chars ($,&,^ etc).  What should be the behavior?

NB will look at this issue and investigate both implementations

15.5.4.11 String.prototype.search

15.5.4.14 String.prototype.split

15.? Call objects

Deleted

15.? With objects

Deleted

15.? Closure objects

Deleted

16 Errors

Timing of errors

Section as it currently exists is probably not worth addressing

Language which provides meta semantics for how errors happen.  Discussion on what needs to be done with this section

WH will provide alternative text for the next meeting

Modularity

Agreed to be post 3rd Edition

I18N

Will be dealt with this afternoon **insert link**

Library will not be in the 3rd Edition and since it will be part of a technical report is not linked to the 3rd Edition

Atomic operations

Agreed to be post 3rd Edition

Other enhancements

Closures and nested functions – done

RegExp Perl5 features – done

Exceptions and runtime errors

Should be added and MM will look after this

Runtime errors as catchable exceptions

Catch guards are deferred post 3rd Edition

Class Hierarchy for errors should be in 3rd Edition and MM will look after this

Cross language

Array and object initializers

Deleted

Function prototype

Done

URI decode etc

In the task list

Miscellaneous enhancements

Deferred post 3rd Edition

Deferred items

Conditional compilation and/or includes

Date scalars

Decimal arithmetic

Generic sequence operations

I18N library

JVM, COM, Corba interop

Persistence (in some form)

toSource( as a way of persisting objects)

Reveal the __proto__ object - deleted

Sharp variables - deleted

Units syntax and arithmetic library

Extensible syntax (e.g. sharps for RGB colors)

Array initializer syntax

MM presented his mechanism

Discussion over allowing trailing comma’s

C 89 doesn’t allow trailing comma’s

But most compilers allow this as an extension

Discussion on the implementation details and how it would effect usability

The group agreed on MM proposal

Move to be function agreed

Regular Expressions

NB presented changes to Hermans original document

15.6.4.9 String.Match

Move to content agreed

15.6.4.10 String.prototype.replace

Need to check what MSFT, NSCP and PERL do before it can be moved to content agreed.

15.6.4.11 String.prototype.search

Some clarification required for the use of last index

15.6.4.14 String.prototype.split

Both implementations differ from the spec

NB will look into this further and send mail with an example covering a*? and other areas of the method usage

Need to change the limit line 4

How to deal with sub expressions

15.7.1 Regular Expression Pattern Matching

^ and $ explanations are incorrect.  These are special everywhere not just at the beginning of a regular expression.

{} the explanation is incorrect.  MSFT throw syntax errors if they are not matched.  So you need to escape them with \\ otherwise implementation defined

Much discussion on ignorecase and its implications when used on foreign language systems

The recommendation is to not deal with conversion of expanding characters and the user can convert the string before the regular expression

\d and \w remain unchanged

\s will change to ensure that it supports all Unicode categories

I18N will put together a proposal for the best way forward for this problem

15.7.2

No changes

Rok Yu noted that 15.7.2.1 and 15.7.3.1 (and 15.7.2.2 and 15.7.3.2) are effectively the same other than an optional argument.  Should we be merging these into 1 section to assist with readability/lack of verbosity?

Pattern description should explicitly show that it should be a string and likewise for flags

NB will attempt to merge

15.7.4

Move to content agreed

15.7.4.1

Move to content agreed

15.7.4.2

Move to content agreed

15.7.5 Properties of the RegExp prototype object

NB will work on clarification of the description

15.7.5.3 RegExp.prototype.exec

The change covers the use of the global property and its effect on case.  Also covers the change to the input property

 

15.7.6.3

Reword this as though it’s string.toUpperCase to deal with locale specific information