Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
roytam1 2023-07-29 23:43:29 +08:00
commit 65de5a7185
57 changed files with 1144 additions and 341 deletions

View file

@ -2509,6 +2509,10 @@ var Debugger =
var Attribute = _require9.Attribute;
var _require23 = __webpack_require__(460);
var BigInt = _require23.BigInt;
var _require10 = __webpack_require__(47);
var DateTime = _require10.DateTime;
@ -2565,7 +2569,7 @@ var Debugger =
// XXX there should be a way for extensions to register a new
// or modify an existing rep.
var reps = [RegExp, StyleSheet, Event, DateTime, TextNode, Attribute, Func, ArrayRep, Document, Window, ObjectWithText, ObjectWithURL, GripArray, GripMap, Grip, Undefined, Null, StringRep, Number, SymbolRep];
var reps = [RegExp, StyleSheet, Event, DateTime, TextNode, Attribute, Func, ArrayRep, Document, Window, ObjectWithText, ObjectWithURL, GripArray, GripMap, Grip, Undefined, Null, StringRep, Number, BigInt, SymbolRep];
/**
* Generic rep that is using for rendering native JS types or an object.
@ -2605,10 +2609,12 @@ var Debugger =
var defaultRep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Obj;
var type = typeof object;
if (type == "object" && object instanceof String) {
type = "string";
} else if (type == "object" && object.type === "symbol") {
type = "symbol";
if (type == "object") {
if (object instanceof String) {
type = "string";
} else if (["symbol", "BigInt"].includes(object.type)) {
type = object.type;
}
}
if (isGrip(object)) {
@ -58325,6 +58331,59 @@ var Debugger =
setBundle
};
/***/ },
/* 460 */
/***/ function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_RESULT__;/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// Make this available to both AMD and CJS environments
!(__WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, module) {
// Dependencies
var React = __webpack_require__(2);
// Shortcuts
var span = React.DOM.span;
/**
* Renders a number
*/
var BigInt = React.createClass({
displayName: "BigInt",
propTypes: {
object: React.PropTypes.object.isRequired
},
render: function () {
let {object} = this.props;
let {text} = object;
return span({ className: "objectBox objectBox-number" }, `${text}n`);
}
});
function supportsObject(object, type) {
return type == "BigInt";
}
// Exports from this module
exports.BigInt = {
rep: BigInt,
supportsObject: supportsObject
};
}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
/***/ }
/******/ ]);
//# sourceMappingURL=bundle.js.map

View file

@ -0,0 +1,48 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
// Make this available to both AMD and CJS environments
define(function (require, exports, module) {
// Dependencies
const React = require("devtools/client/shared/vendor/react");
// Shortcuts
const { span } = React.DOM;
/**
* Renders a BigInt
*/
const BigInt = React.createClass({
displayName: "BigInt",
propTypes: {
object: React.PropTypes.object.isRequired
},
render: function () {
let {object} = this.props;
let {text} = object;
return (
span({className: "objectBox objectBox-number"},
`${text}n`
)
);
}
});
function supportsObject(object, type) {
return (type == "BigInt");
}
// Exports from this module
exports.BigInt = {
rep: BigInt,
supportsObject: supportsObject
};
});

View file

@ -6,6 +6,7 @@
DevToolsModules(
'array.js',
'attribute.js',
'big-int.js',
'caption.js',
'comment-node.js',
'date-time.js',

View file

@ -26,6 +26,7 @@ define(function (require, exports, module) {
// DOM types (grips)
const { Attribute } = require("./attribute");
const { BigInt } = require("./big-int");
const { DateTime } = require("./date-time");
const { Document } = require("./document");
const { Event } = require("./event");
@ -70,6 +71,7 @@ define(function (require, exports, module) {
Null,
StringRep,
Number,
BigInt,
SymbolRep,
InfinityRep,
NaNRep,
@ -111,10 +113,12 @@ define(function (require, exports, module) {
*/
function getRep(object, defaultRep = Obj) {
let type = typeof object;
if (type == "object" && object instanceof String) {
type = "string";
} else if (object && type == "object" && object.type) {
type = object.type;
if (type == "object") {
if (object instanceof String) {
type = "string";
} else if (["symbol", "BigInt"].includes(object.type)) {
type = object.type;
}
}
if (isGrip(object)) {

View file

@ -3236,14 +3236,6 @@ VariablesView.prototype.isOverridden = function (aItem) {
* The variable's descriptor.
*/
VariablesView.isPrimitive = function (aDescriptor) {
// For accessor property descriptors, the getter and setter need to be
// contained in 'get' and 'set' properties.
let getter = aDescriptor.get;
let setter = aDescriptor.set;
if (getter || setter) {
return false;
}
// As described in the remote debugger protocol, the value grip
// must be contained in a 'value' property.
let grip = aDescriptor.value;
@ -3261,7 +3253,8 @@ VariablesView.isPrimitive = function (aDescriptor) {
type == "NaN" ||
type == "-0" ||
type == "symbol" ||
type == "longString") {
type == "longString" ||
type == "BigInt") {
return true;
}
@ -3354,6 +3347,10 @@ VariablesView.getGrip = function (aValue) {
return { type: "-0" };
}
return aValue;
case "bigint":
return { type: "BigInt",
text: aValue.toString(),
};
case "undefined":
// document.all is also "undefined"
if (aValue === undefined) {
@ -3496,6 +3493,10 @@ VariablesView.stringifiers.byType = {
return keyString + " \u2192 " + valueString;
},
BigInt: function (aGrip, aOptions) {
return aGrip.text + "n";
},
}; // VariablesView.stringifiers.byType
VariablesView.stringifiers.byObjectClass = {

View file

@ -1293,6 +1293,7 @@ Messages.Extended.prototype = extend(Messages.Simple.prototype, {
{
let map = {
"number": "cm-number",
"bigint": "cm-number",
"longstring": "console-string",
"string": "console-string",
"regexp": "cm-string-2",
@ -3364,6 +3365,15 @@ Widgets.ObjectRenderers.add({
render: WrappedPrimitiveRenderer,
});
/**
* The widget used for displaying BigInt previews.
*/
Widgets.ObjectRenderers.add({
byClass: "BigInt",
render: WrappedPrimitiveRenderer,
});
/**
* The widget used for displaying String previews.
*/