mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 02:08:38 +09:00
Issue #2026 - Part 3c - Add BigInt Devtools support. (new frontend)
This commit is contained in:
parent
61efc86b21
commit
9042881cea
4 changed files with 121 additions and 9 deletions
|
|
@ -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
|
||||
|
|
|
|||
48
devtools/client/shared/components/reps/big-int.js
Normal file
48
devtools/client/shared/components/reps/big-int.js
Normal 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
|
||||
};
|
||||
});
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
DevToolsModules(
|
||||
'array.js',
|
||||
'attribute.js',
|
||||
'big-int.js',
|
||||
'caption.js',
|
||||
'comment-node.js',
|
||||
'date-time.js',
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue