Files
palemoon27/devtools/shared/ThreadSafeDevToolsUtils.js
T
roytam1 bffc62d3dc import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1219854 - Add more robust source name parsing for displaying allocation stack tree items; r=jsantell (ed3d662ec3)
- Bug 1215954 - Add feature to save a heap snapshot from memory tool to disk. r=fitzgen,vp (0ece4a5575)
- Bug 1222417 - Filter Input Fixes in toolbar.js and memory.css. r=vp (0f17645152)
- Bug 1215953 - Add feature for importing heap snapshots into the memor tool. r=fitzgen,ntim (6c29e07d4f)
- Bug 1221150 - Disable automatic expanding of memory tool's tree items; r=jsantell (d4b1b430de)
- Bug 1219801 - The toolbar in the memory panel on Windows is not looking too nice, r=bgrins (7d5466cca4)
- Bug 1165576 - Netmonitor theme refresh. r=bgrins,vporof (d7cba4e3fd)
- Bug 1173397 - Refactor devtools toolbar button code. r=bgrins (5d9911b74c)
- Bug 1223701 - Use opacity and an SVG filter to style command buttons. r=bgrins (57905e4cf9)
- Bug 960780 - Add support for diffing heap snapshots to the memory tool frontend; r=jsantell,ntim (cc97e32870)
- Bug 1219304 - add react-dom and use it in the devtools to render react r=jsantell (fec8e4272c)
- Bug 1226319 - pt1 - Move react tree widget in memory tool to shared components. r=fitzgen (2f62b30a99)
- Bug 1224760 - Improve tree rendering performance by throttling handlers to once per animation frame; r=jsantell (1d034d1bcd)
- Bug 1219805 - Make coarse type break objects down by [[class]] rather than allocation stack; r=jsantell (bb7f3204fe)
- Bug 1221218 - Use by-filename breakdown in the memory tool; r=jsantell (8afe3f2521)
- Bug 1235909 - Add optional props for expand/collapse event handlers to the Tree component; r=jsantell (6fcb7aa949)
- Bug 1235933 - Fix auto expansion of nodes in the Tree component; r=jsantell (1c6492136c)
- Bug 1081245 - Make the call tree text select and copy-able. r=nfitzgeald (e72f07f469)
- Bug 968510 - Demangle function names in the profiler and flame graph if created via C++. r=vporof (862e3e8750)
- Bug 1219623 - Memory tool should be responsive in low widths and right panel docked. r=fitzgen (49314e1737)
- Bug 1183325 - Allow use of debugger shortcut keys when split console has focus;r=bgrins (30ee081587)
- Bug 1215117 - Make console input field work inside a worker toolbox;r=ejpbruel (a58e82b7be)
- Bug 1200798 - refactor sources and breakpoints in debugger to use redux r=ejpbruel (912229bc74)
- Bug 1219544 - Decouple the react Frame component from the memory view and pull out source utilities from frame utilities in performance tool. r=fitzgen (af81d84029)
- Bug 1235457 - Create ThreadSafeDevToolsUtils for the utilities that can be used in workers; r=jsantell (234dd7c34f)
- Bug 1236053 - Remove the filtering functionality from the Tree component; r=jsantell (38fe9c6448)
- Bug 1229229 - Display dominator trees in the memory tool's UI; r=jsantell (859849d81a)
2023-10-06 11:58:39 +08:00

36 lines
1.1 KiB
JavaScript

/* 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";
/**
* General utilities used throughout devtools that can also be used in
* workers.
*/
/**
* Immutably reduce the given `...objs` into one object. The reduction is
* applied from left to right, so `immutableUpdate({ a: 1 }, { a: 2 })` will
* result in `{ a: 2 }`. The resulting object is frozen.
*
* Example usage:
*
* const original = { foo: 1, bar: 2, baz: 3 };
* const modified = immutableUpdate(original, { baz: 0, bang: 4 });
*
* // We get the new object that we expect...
* assert(modified.baz === 0);
* assert(modified.bang === 4);
*
* // However, the original is not modified.
* assert(original.baz === 2);
* assert(original.bang === undefined);
*
* @param {...Object} ...objs
* @returns {Object}
*/
exports.immutableUpdate = function (...objs) {
return Object.freeze(Object.assign({}, ...objs));
};