Merge inbound to mozilla-central. a=merge
authorNoemi Erli <nerli@mozilla.com>
Fri, 11 Jan 2019 23:54:33 +0200
changeset 513505 c1894cbb4e7150a3a4a16e5d0702e038e7bd466f
parent 513502 0ce024c9151142de96f1009cd2e5a7678281c443 (current diff)
parent 513504 27845cbdcac6f18002fd0d46021ba963487c6659 (diff)
child 513506 3aec75953c2888e37b511f0fdba10c9a3b26a272
child 513542 610a3472661a63f437f584c302739175aaa77db0
child 513600 1ddef6cf6c7ee86191872cac0782b9f6dc01c923
push id1953
push userffxbld-merge
push dateMon, 11 Mar 2019 12:10:20 +0000
treeherdermozilla-release@9c35dcbaa899 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone66.0a1
first release with
nightly linux32
c1894cbb4e71 / 66.0a1 / 20190111215452 / files
nightly linux64
c1894cbb4e71 / 66.0a1 / 20190111215452 / files
nightly mac
c1894cbb4e71 / 66.0a1 / 20190111215452 / files
nightly win32
c1894cbb4e71 / 66.0a1 / 20190111215452 / files
nightly win64
c1894cbb4e71 / 66.0a1 / 20190111215452 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge inbound to mozilla-central. a=merge
toolkit/components/telemetry/Histograms.json
toolkit/components/telemetry/Scalars.yaml
--- a/js/src/builtin/TypedArray.js
+++ b/js/src/builtin/TypedArray.js
@@ -1569,17 +1569,17 @@ function TypedArraySpecies() {
 _SetCanonicalName(TypedArraySpecies, "get [Symbol.species]");
 
 // ES 2017 draft June 2, 2016 22.2.3.32
 function TypedArrayToStringTag() {
     // Step 1.
     var O = this;
 
     // Steps 2-3.
-    if (!IsObject(O) || !IsTypedArray(O))
+    if (!IsObject(O) || !IsPossiblyWrappedTypedArray(O))
         return undefined;
 
     // Steps 4-6.
     // Modified to retrieve the [[TypedArrayName]] from the constructor.
     return _NameForTypedArray(O);
 }
 _SetCanonicalName(TypedArrayToStringTag, "get [Symbol.toStringTag]");
 
new file mode 100644
--- /dev/null
+++ b/js/src/tests/non262/TypedArray/toStringTag-cross-compartment.js
@@ -0,0 +1,12 @@
+const TypedArrayPrototype = Object.getPrototypeOf(Int8Array.prototype);
+const {get: toStringTag} = Object.getOwnPropertyDescriptor(TypedArrayPrototype, Symbol.toStringTag);
+
+const otherGlobal = newGlobal();
+
+for (let constructor of anyTypedArrayConstructors) {
+    let ta = new otherGlobal[constructor.name](0);
+    assertEq(toStringTag.call(ta), constructor.name);
+}
+
+if (typeof reportCompare === "function")
+    reportCompare(true, true);
--- a/js/src/vm/SelfHosting.cpp
+++ b/js/src/vm/SelfHosting.cpp
@@ -2135,18 +2135,20 @@ static bool intrinsic_ConstructorForType
 }
 
 static bool intrinsic_NameForTypedArray(JSContext* cx, unsigned argc,
                                         Value* vp) {
   CallArgs args = CallArgsFromVp(argc, vp);
   MOZ_ASSERT(args.length() == 1);
   MOZ_ASSERT(args[0].isObject());
 
-  RootedObject object(cx, &args[0].toObject());
-  MOZ_ASSERT(object->is<TypedArrayObject>());
+  auto* object = UnwrapAndDowncastValue<TypedArrayObject>(cx, args[0]);
+  if (!object) {
+    return false;
+  }
 
   JSProtoKey protoKey = StandardProtoKeyOrNull(object);
   MOZ_ASSERT(protoKey);
 
   args.rval().setString(ClassName(protoKey, cx));
   return true;
 }
 
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -14195,32 +14195,32 @@
     "n_buckets": 22,
     "keyed": true,
     "bug_numbers": [1341569],
     "description": "Milliseconds between starting to fill an autofill-eligible form field and submitting the form, keyed by the combination of form type and filling type."
   },
   "GFX_OMTP_PAINT_TIME": {
     "record_in_processes": ["content"],
     "alert_emails": ["gfx-telemetry-alerts@mozilla.com", "rhunt@mozilla.com"],
-    "expires_in_version": "70",
+    "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 50,
     "description": "Amount of time in tenths of a millisecond from the beginning of the first async paint until all async paints are finished.",
-    "bug_numbers": [1483245]
+    "bug_numbers": [1483245, 1518669]
   },
   "GFX_OMTP_PAINT_WAIT_TIME": {
     "record_in_processes": ["content"],
     "alert_emails": ["gfx-telemetry-alerts@mozilla.com", "rhunt@mozilla.com"],
-    "expires_in_version": "66",
+    "expires_in_version": "never",
     "kind": "exponential",
     "high": 200,
     "n_buckets": 50,
     "description": "Amount of time in milliseconds the main thread spends waiting for the paint thread to complete, if the time was greater than 200us.",
-    "bug_numbers": [1386968]
+    "bug_numbers": [1386968, 1518669]
   },
   "GFX_OMTP_PAINT_TASK_COUNT": {
     "record_in_processes": ["content"],
     "alert_emails": ["gfx-telemetry-alerts@mozilla.com", "rhunt@mozilla.com"],
     "expires_in_version": "70",
     "kind": "exponential",
     "high": 100,
     "n_buckets": 25,
--- a/toolkit/components/telemetry/Scalars.yaml
+++ b/toolkit/components/telemetry/Scalars.yaml
@@ -1828,22 +1828,23 @@ gfx.advanced.layers:
       - rhunt@mozilla.com
     record_in_processes:
       - 'main'
 
 gfx.omtp:
   paint_wait_ratio:
     bug_numbers:
       - 1386968
+      - 1518669
     description: >
       Ratio (in units of 1/100th of a percent) of how many times OMTP waited
       for a paint for more than 200us, versus the total number of paints.
     keyed: false
     kind: uint
-    expires: "66"
+    expires: "never"
     notification_emails:
       - gfx-telemetry-alerts@mozilla.com
       - rhunt@mozilla.com
     record_in_processes:
       - 'content'
 
 # The following section contains the form autofill related scalars.
 formautofill: