Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edge JavaScript compat data: provide real version numbers #4772

Closed
Elchi3 opened this issue Sep 5, 2019 · 2 comments · Fixed by #4943
Closed

Edge JavaScript compat data: provide real version numbers #4772

Elchi3 opened this issue Sep 5, 2019 · 2 comments · Fixed by #4943
Labels
data:js Compat data for JS/ECMAScript features. https://developer.mozilla.org/docs/Web/JavaScript help wanted You're encouraged to pick up this issue, a maintainer will come back to you and review your work. KR: Real BCD Key Result: Eliminate true/null values and replace them with "real" values.

Comments

@Elchi3
Copy link
Member

Elchi3 commented Sep 5, 2019

Lists of JavaScript features that have true or null for Edge.
Part of #4771.
Total amount of features: 300

1) Built-ins: TypedArrays (#4775) ✅

  • javascript.builtins.Float32Array.constructor_without_arguments
  • javascript.builtins.Float32Array.iterable_in_constructor
  • javascript.builtins.Float64Array.constructor_without_arguments
  • javascript.builtins.Float64Array.iterable_in_constructor
  • javascript.builtins.Int16Array
  • javascript.builtins.Int16Array.constructor_without_arguments
  • javascript.builtins.Int16Array.iterable_in_constructor
  • javascript.builtins.Int16Array.new_required
  • javascript.builtins.Int32Array
  • javascript.builtins.Int32Array.constructor_without_arguments
  • javascript.builtins.Int32Array.iterable_in_constructor
  • javascript.builtins.Int32Array.new_required
  • javascript.builtins.Int8Array
  • javascript.builtins.Int8Array.constructor_without_arguments
  • javascript.builtins.Int8Array.iterable_in_constructor
  • javascript.builtins.Int8Array.new_required
  • javascript.builtins.Uint16Array
  • javascript.builtins.Uint16Array.constructor_without_arguments
  • javascript.builtins.Uint16Array.iterable_in_constructor
  • javascript.builtins.Uint16Array.new_required
  • javascript.builtins.Uint32Array
  • javascript.builtins.Uint32Array.constructor_without_arguments
  • javascript.builtins.Uint32Array.iterable_in_constructor
  • javascript.builtins.Uint32Array.new_required
  • javascript.builtins.Uint8Array
  • javascript.builtins.Uint8Array.constructor_without_arguments
  • javascript.builtins.Uint8Array.iterable_in_constructor
  • javascript.builtins.Uint8Array.new_required
  • javascript.builtins.Uint8ClampedArray
  • javascript.builtins.Uint8ClampedArray.constructor_without_arguments
  • javascript.builtins.Uint8ClampedArray.iterable_in_constructor
  • javascript.builtins.Uint8ClampedArray.new_required
  • javascript.builtins.TypedArray
  • javascript.builtins.TypedArray.BYTES_PER_ELEMENT
  • javascript.builtins.TypedArray.constructor_without_arguments
  • javascript.builtins.TypedArray.index_properties_not_consulting_prototype
  • javascript.builtins.TypedArray.iterable_in_constructor
  • javascript.builtins.TypedArray.name
  • javascript.builtins.TypedArray.named_properties
  • javascript.builtins.TypedArray.new_required
  • javascript.builtins.TypedArray.prototype
  • javascript.builtins.TypedArray.toLocaleString
  • javascript.builtins.TypedArray.toString
  • javascript.builtins.TypedArray.@@iterator
  • javascript.builtins.TypedArray.@@species

2) Built-ins: Functions (#4787) ✅

  • javascript.builtins.Function.apply.generic_arrays_as_arguments
  • javascript.builtins.Function.length.configurable_true
  • javascript.builtins.Function.name.configurable_true
  • javascript.builtins.Function.name.inferred_names
  • javascript.builtins.GeneratorFunction
  • javascript.builtins.GeneratorFunction.prototype

3) Built-ins: Intl (#4789) ✅

  • javascript.builtins.Array.toLocaleString.locales
  • javascript.builtins.Array.toLocaleString.options
  • javascript.builtins.Intl
  • javascript.builtins.Intl.Collator.caseFirst
  • javascript.builtins.Intl.Collator.compare
  • javascript.builtins.Intl.Collator.prototype
  • javascript.builtins.Intl.Collator.resolvedOptions
  • javascript.builtins.Intl.Collator.supportedLocalesOf
  • javascript.builtins.Intl.DateTimeFormat.hourCycle
  • javascript.builtins.Intl.DateTimeFormat.iana_time_zone_names
  • javascript.builtins.Intl.DateTimeFormat.prototype
  • javascript.builtins.Intl.DateTimeFormat.supportedLocalesOf
  • javascript.builtins.Intl.NumberFormat.format
  • javascript.builtins.Intl.NumberFormat.formatToParts
  • javascript.builtins.Intl.NumberFormat.prototype
  • javascript.builtins.Intl.NumberFormat.supportedLocalesOf
  • javascript.builtins.Intl.PluralRules.PluralRules
  • javascript.builtins.Intl.PluralRules.prototype
  • javascript.builtins.Intl.PluralRules.resolvedOptions
  • javascript.builtins.Intl.PluralRules.select
  • javascript.builtins.Intl.PluralRules.supportedLocalesOf

4) Built-ins: Math (#4774) ✅

  • javascript.builtins.Math.E
  • javascript.builtins.Math.LN2
  • javascript.builtins.Math.LN10
  • javascript.builtins.Math.LOG2E
  • javascript.builtins.Math.LOG10E
  • javascript.builtins.Math.PI
  • javascript.builtins.Math.SQRT1_2
  • javascript.builtins.Math.SQRT2
  • javascript.builtins.Math.atan2
  • javascript.builtins.Math.clz32
  • javascript.builtins.Math.expm1
  • javascript.builtins.Math.log1p
  • javascript.builtins.Math.log2
  • javascript.builtins.Math.log10

5) Built-ins: Number (#4782) ✅

  • javascript.builtins.Number
  • javascript.builtins.Number.EPSILON
  • javascript.builtins.Number.MAX_SAFE_INTEGER
  • javascript.builtins.Number.MAX_VALUE
  • javascript.builtins.Number.MIN_SAFE_INTEGER
  • javascript.builtins.Number.MIN_VALUE
  • javascript.builtins.Number.NEGATIVE_INFINITY
  • javascript.builtins.Number.POSITIVE_INFINITY
  • javascript.builtins.Number.prototype
  • javascript.builtins.Number.toLocaleString
  • javascript.builtins.Number.toLocaleString.locales
  • javascript.builtins.Number.toLocaleString.options
  • javascript.builtins.Number.toString
  • javascript.builtins.Number.valueOf

6) Built-ins: RegExp (#4883) ✅

  • javascript.builtins.RegExp
  • javascript.builtins.RegExp.flags
  • javascript.builtins.RegExp.global.prototype_accessor
  • javascript.builtins.RegExp.ignoreCase.prototype_accessor
  • javascript.builtins.RegExp.multiline.prototype_accessor
  • javascript.builtins.RegExp.n
  • javascript.builtins.RegExp.property_escapes
  • javascript.builtins.RegExp.prototype
  • javascript.builtins.RegExp.source.empty_regex_string
  • javascript.builtins.RegExp.source.escaping
  • javascript.builtins.RegExp.source.prototype_accessor
  • javascript.builtins.RegExp.sticky.anchored_sticky_flag
  • javascript.builtins.RegExp.sticky.prototype_accessor
  • javascript.builtins.RegExp.toString
  • javascript.builtins.RegExp.toString.escaping
  • javascript.builtins.RegExp.@@match
  • javascript.builtins.RegExp.@@replace
  • javascript.builtins.RegExp.@@search
  • javascript.builtins.RegExp.@@species
  • javascript.builtins.RegExp.@@split

7) Built-ins: String (#4891) ✅

  • javascript.builtins.String
  • javascript.builtins.String.localeCompare.locales
  • javascript.builtins.String.localeCompare.options
  • javascript.builtins.String.prototype
  • javascript.builtins.String.toLocaleLowerCase.locale
  • javascript.builtins.String.toLocaleUpperCase.locale
  • javascript.builtins.String.toString
  • javascript.builtins.String.trimEnd
  • javascript.builtins.String.trimStart
  • javascript.builtins.String.unicode_code_point_escapes
  • javascript.builtins.String.valueOf
  • javascript.builtins.String.@@iterator

8) Built-ins: Misc (#4894) ✅

  • javascript.builtins.JSON
  • javascript.builtins.Map.@@iterator
  • javascript.builtins.Object
  • javascript.builtins.Object.defineGetter
  • javascript.builtins.Object.defineSetter
  • javascript.builtins.Object.lookupGetter
  • javascript.builtins.Object.lookupSetter
  • javascript.builtins.Object.preventExtensions.ES2015_behavior
  • javascript.builtins.Object.proto
  • javascript.builtins.Object.prototype
  • javascript.builtins.Promise
  • javascript.builtins.Promise.Promise
  • javascript.builtins.Promise.prototype
  • javascript.builtins.Proxy.handler.isExtensible
  • javascript.builtins.Proxy.handler.setPrototypeOf
  • javascript.builtins.RangeError
  • javascript.builtins.ReferenceError
  • javascript.builtins.Set.@@iterator
  • javascript.builtins.Symbol.match
  • javascript.builtins.Symbol.replace
  • javascript.builtins.Symbol.search
  • javascript.builtins.Symbol.split
  • javascript.builtins.Symbol.@@toPrimitive
  • javascript.builtins.SyntaxError
  • javascript.builtins.TypeError
  • javascript.builtins.URIError
  • javascript.builtins.WeakMap.prototype
  • javascript.builtins.WeakSet.prototype

9) Built-ins: top-level functions (#4783) ✅

  • javascript.builtins.Infinity
  • javascript.builtins.NaN
  • javascript.builtins.decodeURI
  • javascript.builtins.decodeURIComponent
  • javascript.builtins.encodeURI
  • javascript.builtins.encodeURIComponent
  • javascript.builtins.escape
  • javascript.builtins.eval
  • javascript.builtins.isFinite
  • javascript.builtins.isNaN
  • javascript.builtins.null
  • javascript.builtins.parseFloat
  • javascript.builtins.parseInt
  • javascript.builtins.parseInt.leading_zero_strings_as_decimal
  • javascript.builtins.undefined
  • javascript.builtins.unescape

10) Functions (#4896) ✅

  • javascript.functions
  • javascript.functions.arguments
  • javascript.functions.arguments.callee
  • javascript.functions.arguments.length
  • javascript.functions.arguments.@@iterator
  • javascript.functions.arrow_functions
  • javascript.functions.arrow_functions.trailing_comma
  • javascript.functions.block_level_functions
  • javascript.functions.default_parameters.destructured_parameter_with_default_value_assignment
  • javascript.functions.get
  • javascript.functions.get.computed_property_names
  • javascript.functions.method_definitions
  • javascript.functions.method_definitions.async_generator_methods
  • javascript.functions.method_definitions.async_methods
  • javascript.functions.method_definitions.generator_methods_not_constructable
  • javascript.functions.set
  • javascript.functions.set.computed_property_names

11) Grammar (#4897) ✅

  • javascript.grammar.array_literals
  • javascript.grammar.boolean_literals
  • javascript.grammar.decimal_numeric_literals
  • javascript.grammar.hashbang_comments
  • javascript.grammar.hexadecimal_escape_sequences
  • javascript.grammar.hexadecimal_numeric_literals
  • javascript.grammar.null_literal
  • javascript.grammar.numeric_separators
  • javascript.grammar.regular_expression_literals
  • javascript.grammar.string_literals
  • javascript.grammar.unicode_escape_sequences
  • javascript.grammar.trailing_commas
  • javascript.grammar.trailing_commas.trailing_commas_in_object_literals

12) Operators (#4784) ✅

  • javascript.operators.arithmetic.addition
  • javascript.operators.arithmetic.decrement
  • javascript.operators.arithmetic.division
  • javascript.operators.arithmetic.increment
  • javascript.operators.arithmetic.multiplication
  • javascript.operators.arithmetic.remainder
  • javascript.operators.arithmetic.subtraction
  • javascript.operators.arithmetic.unary_negation
  • javascript.operators.arithmetic.unary_plus
  • javascript.operators.assignment.addition
  • javascript.operators.assignment.bitwise_and
  • javascript.operators.assignment.bitwise_or
  • javascript.operators.assignment.bitwise_xor
  • javascript.operators.assignment.division
  • javascript.operators.assignment.exponentiation
  • javascript.operators.assignment.left_shift
  • javascript.operators.assignment.multiplication
  • javascript.operators.assignment.remainder
  • javascript.operators.assignment.right_shift
  • javascript.operators.assignment.simple
  • javascript.operators.assignment.subtraction
  • javascript.operators.assignment.unsigned_right_shift
  • javascript.operators.await
  • javascript.operators.bitwise.and
  • javascript.operators.bitwise.left_shift
  • javascript.operators.bitwise.not
  • javascript.operators.bitwise.or
  • javascript.operators.bitwise.right_shift
  • javascript.operators.bitwise.unsigned_right_shift
  • javascript.operators.bitwise.xor
  • javascript.operators.class
  • javascript.operators.comma
  • javascript.operators.comparison.equality
  • javascript.operators.comparison.inequality
  • javascript.operators.comparison.identity
  • javascript.operators.comparison.non_identity
  • javascript.operators.comparison.greater_than
  • javascript.operators.comparison.greater_than_or_equal
  • javascript.operators.comparison.less_than
  • javascript.operators.comparison.less_than_or_equal
  • javascript.operators.conditional
  • javascript.operators.delete
  • javascript.operators.delete.temporal_dead_zone
  • javascript.operators.function
  • javascript.operators.function_star
  • javascript.operators.function_star.trailing_comma
  • javascript.operators.grouping
  • javascript.operators.in
  • javascript.operators.instanceof
  • javascript.operators.logical.and
  • javascript.operators.logical.or
  • javascript.operators.logical.not
  • javascript.operators.new
  • javascript.operators.new_target
  • javascript.operators.object_initializer
  • javascript.operators.object_initializer.computed_property_names
  • javascript.operators.object_initializer.shorthand_method_names
  • javascript.operators.object_initializer.shorthand_property_names
  • javascript.operators.property_accessors
  • javascript.operators.super
  • javascript.operators.this
  • javascript.operators.typeof
  • javascript.operators.void
  • javascript.operators.yield
  • javascript.operators.yield.IteratorResult
  • javascript.operators.yield_star

13) Statements (#4899) ✅

  • javascript.statements.async_function
  • javascript.statements.block
  • javascript.statements.break
  • javascript.statements.class
  • javascript.statements.const
  • javascript.statements.continue
  • javascript.statements.debugger
  • javascript.statements.default.switch
  • javascript.statements.do_while
  • javascript.statements.empty
  • javascript.statements.for
  • javascript.statements.for_in
  • javascript.statements.for_of.async_iterators
  • javascript.statements.for_of.closing_iterators
  • javascript.statements.function
  • javascript.statements.function.trailing_comma_in_parameters
  • javascript.statements.generator_function.not_constructable_with_new
  • javascript.statements.generator_function.trailing_comma_in_parameters
  • javascript.statements.if_else
  • javascript.statements.import_meta
  • javascript.statements.label
  • javascript.statements.return
  • javascript.statements.switch
  • javascript.statements.throw
  • javascript.statements.try_catch
  • javascript.statements.var
  • javascript.statements.while
  • javascript.statements.with


If we're doing this manually and are opening one PR for each chunk, this would be 13 PRs to write and to review. If we say we need 3 hours for each PR round (some might be smaller, some bigger), the total estimation would be 39 hours (or 1 week) to complete Edge data.
@Elchi3 Elchi3 added the data:js Compat data for JS/ECMAScript features. https://developer.mozilla.org/docs/Web/JavaScript label Sep 5, 2019
@Elchi3 Elchi3 added the help wanted You're encouraged to pick up this issue, a maintainer will come back to you and review your work. label Sep 5, 2019
@Elchi3
Copy link
Member Author

Elchi3 commented Sep 6, 2019

So, in less than a day I was able to bake half of the Edge data updates into PRs and Vinyl reviewed them. So, probably my estimation above is nuts and JS isn't similar to CSS or I'm just hitting on easy cases. (Edge is probably the easiest of the 4 for which we need to find values).

@Elchi3 Elchi3 added this to the Peppermint (S3 Q3 2019) milestone Sep 11, 2019
@jmswisher jmswisher added the KR: Real BCD Key Result: Eliminate true/null values and replace them with "real" values. label Sep 11, 2019
@queengooborg
Copy link
Contributor

queengooborg commented Oct 8, 2019

After all the PRs have been merged (woo!), there's a couple that were missed. They are as follows:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:js Compat data for JS/ECMAScript features. https://developer.mozilla.org/docs/Web/JavaScript help wanted You're encouraged to pick up this issue, a maintainer will come back to you and review your work. KR: Real BCD Key Result: Eliminate true/null values and replace them with "real" values.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants