Changes between Version 1 and Version 2 of WebKitStandardsPositions


Ignore:
Timestamp:
Jan 5, 2021 3:02:27 PM (18 months ago)
Author:
Jon Davis
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WebKitStandardsPositions

    v1 v2  
    7373
    7474''hober:'' Maybe should reflect a per-port stance on the feature page?
    75 
    76 ''Ross:'' I think we had a successful contributing with standards and trying to be as conformant as possible.
    77 
    78 ''Ross:'' We have had a more balanced participation in Source/JavaScriptCore in 2019-2020 in the last year. In the last year more contributions have been done by non-apple contributors. Slack has been great for our communication on the JSC part of the project. There’s also a biweekly OSS staff meeting.
    79 
    80 ''Ross:'' The rest of the presentation is focused on standards-related work in the JSC team.
    81 
    82 ''Ross:'' But there are cases where we use our knowledge and work in JSC to help contribute to standards work.
    83 
    84 ''Alexey:'' Today we have an all time high on test262 (JS spec test suite)
    85 
    86 ''Alexey:'' Overall we have an 85% pass rate up from 80% in 2019
    87 
    88 ''Alexey:'' There have been a number of notable fixes in the last year. Keith (me) fixei unescaped astral literals in indentifiers. Saam fixed Array.prototype to work with indicies beyond 2^32
    89 
    90 ''Alexey:'' ProxyObject has been improved such as trap failures, relection, in the prototype chain, etc.
    91 
    92 ''Alexey:'' Early errors for unicode RegExps
    93 
    94 ''Alexey:'' [[DefineOwnProperty]] no longer corrupts property name order (for-in)
    95 
    96 ''Alexey:'' Classes no longer rely on `_proto_ ops handle [[IsHTMLDDA]] correctly
    97 
    98 ''Alexey:'' Array.prototype.sort was aligned with the new tightened spec.
    99 
    100 ''Alexey:'' Ross aligned TypedArray internal and prototype methods with the spec (while at the same time fixing the spec)
    101 
    102 ''Caio:'' Public and private fields are currently a stage 3 proposal in TC-39
    103 
    104 ''Caio:'' In the last year Safari shipped with public fields
    105 
    106 ''Caio:'' With fields the constructor of a class will install each of the fields in the class onto the object it creates
    107 
    108 ''Caio:'' Private fields are a bit different because the identifier is only accessible from inside the lexical scope of the class definition
    109 
    110 ''Caio:'' Igalia has been working on this and has also been working on other class features.
    111 
    112 ''Ross:'' Were you also gonig to tell us about BigInt?
    113 
    114 ''Caio:'' Robin and I have been working on BigInt over the last year
    115 
    116 ''Caio:'' BigInts are similar to numbers in JS but they have infinite precision. i.e. when you go over 2^53 with BigInt you will not lose precision.
    117 
    118 ''Ross:'' New 262 features.
    119 
    120 ''Yusuke:'' WeakRef and FinalizationRegistry, implemented by Keith (me)
    121 
    122 ''Yususke:'' With WeakRef, it’s now possible to create a weak map where the values are held weakly
    123 
    124 ''Yusuke:'' In fact we are already using WeakRef in the WebInspector
    125 
    126 ''Ross:'' Short-circuiting assignment operators.
    127 
    128 ''Ross:'' This proposal was delayed until the nullish coalesing feature has been shipped.
    129 
    130 ''Ross:'' short ciruiting assignment was implemented by Devin
    131 
    132 ''Ross:'' String.prototype.replaceAll does what you would have expected replace all along.
    133 
    134 ''Ross:'' Previously if you didn’t use the global flag on a regexp or used a string regexp replace would only replace the first occurrance
    135 
    136 ''Ross:'' Array.prototype.at (originally, proposed as Array.prototype.item)
    137 
    138 ''Ross:'' has an advantage for access because it works with negative indicies
    139 
    140 ''Yusuke:'' Intl
    141 
    142 ''Yusuke:'' We went from 37% conformance to 98% conformance
    143 
    144 ''Yusuke:'' Ross and I worked closely on getting everything working
    145 
    146 Included work with ICU, perf, and new feature work.
    147 
    148 ''Yusuke:'' * describes all the new Intl features we have shipped *
    149 
    150 ''Yusuke:'' New Webassembly features this year are mutable Globals
    151 
    152 ''Ross:'' Looking ahead to 2021 we want to get to 90% pass rate on test262
    153 
    154 The important part here isn’t just to get 90% but rather that we want to establish 90% as our new baseline and continually improve on that
    155 
    156 ''Caio:'' We also want to continue our class properties work to implement private methods
    157 
    158 ''Caio:'' Not limited to just functions but also can include private getters and setters
    159 
    160 ''Caio:'' Last but not least we also want to add static class fields and static private methods
    161 
    162 ''Yusuke:'' We have also re-enabled SharedArrayBuffer and Atomics in the build and in testers\
    163 
    164 ''Yusuke:'' We also want to add Top-level await. This lets us put the await expression at the top level of module code.
    165 
    166 ''Yusuke:'' Another module feature we want is to have modules in workers
    167 
    168 ''Yusuke:'' And many more features all coming soon!
    169 
    170 ''Yusuke:'' We also hope to have more collaboration and build on the progress we have made this year
    171 
    172 ''Jen:'' Questions?
    173 
    174 ''Saam:'' Where are we at in test262 conformance again?
    175 
    176 ''Ross:'' Roughly we are at 85%
    177 
    178 ''Ryosuke:'' Is private class fields enabled in safari 14
    179 
    180 ''Yusuke:'' Private fields just landed a few minutes ago so no
    181 
    182 ''Ryosuke:'' I’m excited for this feature so I hope we can get it done soon
    183 
    184 ''Caio:'' We still needed to add some JIT work for private fields and hopefully we can get that done soon
    185 
    186 ''Saam:'' We should just turn it on
    187 
    188 ''Yusuke:'' This is a good time to enable it because it gives us a chance to get feedback
    189 
    190 ''Caio:'' We need to do some work on field initialization but it shouldn’t block private fields because it didn’t block public fields
    191 
    192 ''Ryosuke:'' In order for the fuzzer to run with it we need to enable it somewhere e.g. WebKitTestRunner
    193 
    194 ''Yusuke:'' We need to add support private fields syntax in the fuzzer but shouldn’t be too hard
    195 
    196 ''Ryosuke:'' For each JSC feature we now want to have significant fuzzing for each new feature before shipping
    197 
    198 ''Yusuke:'' We can also enable the feature in our fuzzers without enabling by default
    199 
    200 ''Ryosuke:'' To clarify on what we want to fuzz we want to fuzz everything that could be used to exploit JSC
    201 
    202 ''Saam:'' Fortunately, for most features outside syntax, fuzzer will just test it
    203 
    204 ''Yusuke:'' Yeah, for things like changes to DFG the fuzzer will find it because it will build off all the JSC tests