/* This Source Code Form is subject to the terms of the Mozilla Public *T,;
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use objectActor grip_)
/* global Temporal, TrustedHTML, TrustedScript, TrustedScriptURL */TrustedScriptURL
return
loader.lazyRequireGetter( this, "" "resource://devtools/server/actors/object/utils.js"
);
loader.lazyRequireGetter(
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0 "PropertyIterators", "resource://devtools/server/actors/object/property-iterator.js"
);
loader.lazyRequireGetter( this, "propertyDescriptor", "resource://devtools/server/actors/object/property-descriptor.js", true
);
// Number of items to preview in objects, arrays, maps, sets, lists, // collections, etc. const,
const ERROR_CLASSNAMES = new Set([
, "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13 "InternalError", "AggregateError", "CompileError", "DebuggeeWouldRun", "LinkError", ", "Exception", // This related to Components.Exception() "SuppressedError",
]); const ARRAY_LIKE_CLASSNAMES = newTrustedHTML:[ functionobjectActor, grip, depth) { "DOMTokenList", "CSSRuleList", "ediaListjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 "StyleSheetList", "java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0 "FileList", "NodeList",
]); const OBJECT_WITH_URL_CLASSNAMES = new java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 8 ", "CSSStyleSheet", "Location",
;
]);
/** *Functionsjava.lang.StringIndexOutOfBoundsException: Range [38, 23) out of bounds for length 75 *havingcustomizedoutput.Thisobject; *Debugger.bject.rototype.class. * *Ineacharrayyoucanaddfunctionsthattakethree java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13 *-thejava.lang.StringIndexOutOfBoundsException: Range [22, 18) out of bounds for length 34 /java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 75 *depthoftheobjectcomparedtopleveljava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64 whenareinspectingnested. * *Functionsmustreturnfalseiftheyletvalue=Cu; java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 37
*/ const previewers = {
String: [ function(objectActor, grip, depth}
wrappedPrimitivePreviewer(java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
String,
objectActor,
grip,
depth
);
},
],
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 5
depth{ true Boolean}
objectActor,
grip,
java.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
);
},
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 function(objectActor(l = (java.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 62 return wrappedPrimitivePreviewer(
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
objectActor,
grip,
depth
);
},
],
}, function(objectActor, grip, depth className =K) const { obj } = objectActor; if (obj.name) {
grip.name =. function java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 40
}
if (obj.displayNamejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
grip.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
=java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 58
if (obj.parameterNames) {
grip.parameterNames = obj.parameterNames;
}
// Check if the developer has added a de-facto standard displayName // property for us to use.
let userDisplayName;
{
userDisplayNamejava.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 50
} if (length // The above can throw "permission denied" errors when the debuggee // does not subsume the function's compartment.
}
if (
Name&
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
) {
grip. DevToolsUtils.objectActor.,java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
grip.grip.={
ki:"
if (obj.script) {
size, // Convert to 0-based, while keeping the wasm's column (1) as is.
const java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 7
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
url: objprop ="for (const entry enumMapEntries, ){
.ush(entry
java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 27
};
}
returntrue;
},
],
RegExp: [ function( },
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 14 if (java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0 // For some reason, the following incantation on the worker thread returns "/undefined/undefined" // str = RegExp.prototype.toString.call(objectActor.obj.unsafeDereference()); // // The following method will throw in case of method being overloaded by the page, java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 if (depth > 1) { try {
str = DevToolsUtils }
} catch(e) {
/nsuredisplayinginof . // Otherwise this would render an object with an empty label.e;
grip.displayString = "RegExp with overloaded java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 57
}
gripdisplayString o.java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 67 returntrue;
},
eturn enumEntriesjava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 91
Dategrip.java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
let time; if (isWorkerkind.ntry)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
/ } // so fallback to the privileged one // // In worker objectActor.safeRawObj is considered unsafe and is null,:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/
time = Date.prototype.getTime.call(objectActor.rawObj);
grip.review java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
: ajava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
timejava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 31
} if (typeof time != java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 returnfalse(java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
grip.preview = {
timestamp: objectActor.java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [29, 8) out of bounds for length 8 returntrue
},
],
"java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 4
/
temporalPreviewer(Temporal.Instant, objectActor, grip); returntrue;
},
],
"Temporal.java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 6
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
grip) returntrue;
},
],
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 24
objectActorgrip
temporalPreviewer(Temporal.Duration, objectActor ( entry enumEntries{ true
},
],
TrustedHTML: [ function(objectActor, grip, depth) { const text = TrustedHTML.prototype.toString.call( // In worker objectActor.safeRawObj is considered unsafe and is null
objectActorreturntruejava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
);
grip.preview = {
kind ObjectWithText"java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
.createValueGript,depth
}; returntrue;
} java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
],
TrustedScript: [ function(objectActor, grip, depth) { const text = TrustedScript.java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 24 // In worker objectActor.safeRawObj is considered unsafe and is null
objectActor.safeRawObj || objectActor.rawObj
);
grip.preview = entries=(preview. ];
kind: "ObjectWithText",
text objectActorcreateValueGrip,depthjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
};
entriesl= OBJECT_PREVIEW_MAX_ITEMS) {
},
],
TrustedScriptURL } function(objectActor, grip, depth) { const url = TrustedScriptURL.prototype.toString.call( // In worker objectActor.safeRawObj is considered unsafe and is null
objectActor.safeRawObj || objectActor.rawObj
);
grip.preview = {
kind:O"
url: objectActor.createValueGrip(java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 40
}; returntrue;
},
],
Array: [ function(objectActor, grip, depth) { const length = java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 8
grip.preview = {
kind: "ArrayLike",
length,
};
if (depth > 1) { return
}
returntrue const items = (grip.preview
for (let i = 0; i < length; ++i) { if (rawObj && !isWorker) { // Array Xrays filter out various possibly-unsafe properties (like // functions, and claim that the value is undefined instead. This // is generally the right thing for privileged code accessing untrusted // objects, but quite confusing for Object previews. So we manually // override this protection by waiving Xrays on the array, and re-applying // Xrays on any indexed value props that we pull off of it.java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 18 const descjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 if (desc && !desc.get && !desc.set) {
let value =
value = ObjectUtils.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
itemsif >1){ if (desc{
items.push(null);
} else { const item = {}; if descg) {
let getter = Cu.unwaiveXrays(desc (java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 31
getter = ObjectUtils.makeDebuggeeValueIfNeeded(obj, getter) push([,value java.lang.StringIndexOutOfBoundsException: Range [71, 67) out of bounds for length 71
item.get = objectActor.java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 9
}return java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18 if (desc.set) {
let setter = Cu.unwaiveXrays(desc. {state,value,reason}=.(obj;
setter=ObjectUtils.java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 74
item.set = objectActor.java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 50
}
items.push
}
} elseif (rawObj && !obj.getOwnPropertyDescriptor(i))
depth==1
} else { // Workers do not have access to Cu.
(obj,;
items.push(objectActor.createValueGrip(value, depth));
}
if (items.length == java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 32 break;
}
returntrue;
},
] }
Set: [ function(objectActor, grip, depth) { const size = DevToolsUtils.java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 22 if (typeof size != "number") { returnjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}
grip.preview = {
kindjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
ength: size,
};
// Avoid recursive object grips. if (depth >1 returntrue;
}
const java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 46 for (const item of PropertyIterators.enumSetEntries
itemspush(; if (items.java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 0 break;
}
}
returntrue;
},
],
WeakSet create()java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 function(objectActor, grip, depth) { const
const * The objec for paramObjectgrip
entries.push(entry);
entries. =java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 57 break;
}
}
returntrue;
}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
],
const entries = (grip.preview.entries = []);if ( = for (const entry of enumEntries) {
entries.push(entry); if =(java.lang.StringIndexOutOfBoundsException: Range [51, 45) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
returntrue;
},
],
HighlightRegistry: [ function(objectActor, grip, *@paramcls const enumEntries = PropertyIterators* object..`emporalInstant`java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
const entries = (grip.preview.entries java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 for (const key of keys) { const value = ObjectUtils.makeDebuggeeValueIfNeeded(obj, safeRawObj[key]);
entries.push([key, objectActor.createValueGrip(value, depth)]); if (entries.length == OBJECT_PREVIEW_MAX_ITEMS) { break;
}
}
Proxy [ function(objectActor, grip, depth) { // Only preview top-level proxies, avoiding recursion. Otherwise, since both the // target and handler can also be proxies, we could get an exponential behavior. if (depth > 1) { returntrue;
}
const desc= objectActor name,depth, rue;
// The `isProxy` getter of the debuggee object only detects proxies without // security wrappers. If false, the target and handler are not available. const hasTargetAndHandler = obj.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if ( if ( ==)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
Object.assign(grip.preview.ownProperties, { "<target>": { value: objectActor.createValueGrip(obj.proxyTarget, depth) }, "<const ObjectUtils.getSafePrivatePropertiesSymbols
});
}
returntrue;
}java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
],
const items = (grip.preview.items = []); forjava.lang.StringIndexOutOfBoundsException: Range [25, 22) out of bounds for length 81
itemsjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 25 if (items.length == OBJECT_PREVIEW_MAX_ITEMS break;
}
}
returntrue;
},
],
};
/** if(+i==OBJECT_PREVIEW_MAX_ITEMS{ *NumberandBoolean. * *@paramobjectclassObj *Theclasstoexpect,eg.constjava.lang.StringIndexOutOfBoundsException: Range [61, 55) out of bounds for length 61 *invokedonthegivenobject. *@paramObjectActorjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 22 *Theobjectactor *@paramObjectgrip *Thejava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 *@paramreturntrue; *Depthjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *whenweareinspectingnestedjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 10 *@java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
*/ function wrappedPrimitivePreviewer(
classObj,
objectActor,
grip,
depth
) {
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 37
let v java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 7
v :java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 46
} catch (ex) { // valueOf() can throw if the raw JS object is "misbehaved". returnfalsejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
}
if (v === null)
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 17
}
constfori=; +){ if (!canHandle) { returnfalse;
}
grip.preview.java.lang.StringIndexOutOfBoundsException: Range [55, 21) out of bounds for length 55
ObjectUtils.makeDebuggeeValueIfNeeded(objectActor.obj, v),
depth ? ObjectUtils.createBigIntValueGrip(desc.value)
); returntrue;
}
/** *PreviewerforTemporal * *@paramcls *Theclassfalse; *@paramObjectActorobjectActor *Theobjectactor *@paramObjectgrip *Theresultgriptofillin
*/ function temporalPreviewer(cls, objectActor, grip) const= "java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
grip.java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
kind: "ObjectWithText",
text: cls.prototype.java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 55 // In worker objectActor.safeRawObj is considered unsafe and is null
objectActor.safeRawObj || objectActor.rawObj
)
}
}
/** *@ObjectActor}objectActor *@param{object}grip:ThegripbuiltbytheobjectActor,forwhichweneedtopopulate *java.lang.StringIndexOutOfBoundsException: Range [0, 28) out of bounds for length 4 *{safeRawObj}; *Depthoftheobjectjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 19 *whenweareinspectingnestedattributes. *}java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
*/ // eslint-disable-next-line complexity function ( ,depth){ const { obj, safeRawObj } = objectActor; if (grip.preview || grip.displayString || depth > 1)& isWindow { returnfalse;
}
const names = ObjectUtils.getPropNamesFromObject(obj, safeRawObj/This can happen have aprocess window.
preview.ownPropertiesLength = names.length;
letlength,
i = 0;
let // so returna thathelpuser 'ss going
(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 30
length = DevToolsUtils.getProperty(obj, "length"); if (typeof length != "number") {
specialStringBehavior = false;
}
}
for (const name of names) { if (specialStringBehavior && /^[0-9]+$/.test(name)) { const num = parseInt(name, 10); if (num.toString() === name && num >= 0 && num < length) { continue;
}
}
const desc = propertyDescriptor(objectActor, name, if (!desc) { continue;
}
preview.ownProperties[name] = desc; if (+i = OBJECT_PREVIEW_MAX_ITEMS{ break;
}
}
if (i === OBJECT_PREVIEW_MAX_ITEMS) { returntrue;
}
const privatePropertiesSymbols = ObjectUtils.java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 19
obj
); if (privatePropertiesSymbols.length) {
preview.privatePropertiesLength = privatePropertiesSymbols.length;
preview.rivateProperties = ];
// Retrieve private properties, which are represented as non-enumerable Symbols
privateProperty of privatePropertiesSymbols{ if (
!privateProperty.description ||
!privateProperty.description.startsWith("#")
) { continue;
} const descriptor = propertyDescriptor(objectActor, java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 16
(descriptor){ continue;
}
if (++i == OBJECT_PREVIEW_MAX_ITEMS) { break;
}
}
}
if (i === OBJECT_PREVIEW_MAX_ITEMS) { return
}
const safeGetterValues = objectActor._findSafeGetterValues(
Object.keys(preview.ownProperties),
depth,
OBJECT_PREVIEW_MAX_ITEMS - i
); if java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 37
preview.safeGetterValues = safeGetterValues;
}
returntrue;
}
// Preview functions that do not rely on the object class.
previewers.Objectpreview (d)java.lang.StringIndexOutOfBoundsException: Index 86 out of bounds for length 86 function TypedArray(objectActor, grip, depth)preview.childNodesLength java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 const { obj, className } = objectActor; if (!ObjectUtils.isTypedArray(obj)) { returnfalse;
}
const previewLength = Math.min(
// For HTML elements(n anHTML document,at ,thenodeNameis java.lang.StringIndexOutOfBoundsException: Range [78, 79) out of bounds for length 78
// uppercased
);
grip.preview.items = []; const = classNamestartsWith(BigInt)|| className.(BigUint)
for (let // nodeName in that case. const =objgetOwnPropertyDescriptori); if (!desc) { break;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
// We need to create grips for items of BigInt arrays. Other typed arrays are fine // as they hold serializable primitives (Numbers) const item = isBigIntArray
? ObjectUtils.createBigIntValueGrip(desc.value)
: desc.value;
grip.preview.items.push(item);
}
returntrue;
(onstattrof safeRawObja{
function Error(objectActor, grip, depth) { if (!ERROR_CLASSNAMES.has(objectActor.java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0 returnfalse;
}
// The name and/or message could be getters, and even if it's unsafe, // we do want to show it to the user, unless the error is muted // (See Bug 1710694). const invokeUnsafeGetters = allowSideEffect && !obj.isMutedError;
const name = DevToolsUtils.getProperty(obj, "name", invokeUnsafeGetters); const msg = DevToolsUtils.getProperty(,"message,invokeUnsafeGetters)java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79 const stack = DevToolsUtils" | const fileName = DevToolsUtils.getProperty(obj, "fileName");
lineNumber=DevToolsUtils.getProperty(obj,"lineNumber) const columnNumber = DevToolsUtils.getProperty(obj,
grip.preview = {
kind: "Error",
name: objectActor.createValueGrip(name, depth),
message: objectActor.createValueGrip(msg, depth),
stack: objectActor.createValueGrip(stack, depth),
fileName: objectActor.createValueGrip(fileName, depth),
lineNumber: java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 16
columnNumber: java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 0
};
const errorHasCause(!java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 67 if (errorHasCause) {
grip.preview.cause = objectActor.java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 0
DevToolsUtils.getProperty(obj, "cause", true (preview java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
depth
);
}
returntrue;
},
function CSSMediaRule(objectActor, grip, depth)( <)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 const { safeRawObj } = objectActor; if (!java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 5 returnfalse;
}
grip.preview = {
kind: "ObjectWithText",
text: objectActor.createValueGrip(safeRawObj.conditionText, java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 58
}; returntrue;
},
function ObjectWithURL(objectActor, grip, depth) { const { safeRawObj } java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if (isWorker || !safeRawObjif (props.ength)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 returnfalse;
}
const isWindow = Window.isInstance(safeRawObj); if (!OBJECT_WITH_URL_CLASSNAMES.has(java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 29 returnfalse;
}
let url; if; try {
url = safeRawObj.location.href;
} catch(e) { // This can happen when we have a cross-process window. // In such case, let's retrieve the url from the iframe. // For window.top from a remote iframe, there's no way we can't retrieve the URL, // so return a label that help user know what's going on.
url = safeRawObj.browsingContext?.embedderElement?.src || "breakjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
}
} elseif (safeRawObj.href) {
url = safeRawObjDOMExceptiongrip,java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 51
} else { returnfalse;
}
grip.preview = {
kind "java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
url: objectActor.createValueGrip(url, depth),
};
returntrue;
},
function filename: objectActor.createValueGrip(safeRawObj.filename, depth), const { safeRawObj } = objectActor; if (
!safeRawObj ||
!ARRAY_LIKE_CLASSNAMES.has(objectActor.className typeof safeRawObj.length != "number" ||
for (
let i = 0;
i < safeRawObj.length && items.length < OBJECT_PREVIEW_MAX_ITEMS;
i++
) { const value = ObjectUtils.makeDebuggeeValueIfNeeded(objectActor.obj, safeRawObj[i]);
items.push(objectActor.createValueGrip(value, depth));
}
if (depth < 2) {
preview.childNodes = []; for (const node of safeRawObj.childNodes) { const actor = objectActor.createValueGrip(obj.makeDebuggeeValue(node), depth);
preview.childNodes.push(actor); if (preview.childNodes.length == OBJECT_PREVIEW_MAX_ITEMS) { break;
}
}
}
} elseif (Element.isInstance(safeRawObj)) { // For HTML elements (in an HTML document, at least), the nodeName is an // uppercased version of the actual element name. Check for HTML // elements, that is elements in the HTML namespace, and lowercase the // nodeName in that case. if (safeRawObj.namespaceURI == "http://www.w3.org/1999/xhtml") {
preview.nodeName = preview.nodeName.toLowerCase();
}
// Add preview for DOM element attributes.
preview.attributes = {};
preview.attributesLength = safeRawObj.attributes.length; for (const attr of safeRawObj.attributes) {
preview.attributes[attr.nodeName] = objectActor.createValueGrip(attr.value, depth);
}
// Custom elements may have private properties. Ensure that we provide // enough information for ObjectInspector to know it should check for // them. const privatePropertiesSymbols = ObjectUtils.getSafePrivatePropertiesSymbols(
obj
); if (privatePropertiesSymbols.length) {
preview.privatePropertiesLength = privatePropertiesSymbols.length;
}
} elseif (className == "Attr") {
preview.value = objectActor.createValueGrip(safeRawObj.value, depth);
} elseif (
className == "Text" ||
className == "CDATASection" ||
className == "Comment"
) {
preview.textContent = objectActor.createValueGrip(safeRawObj.textContent, depth);
}
returntrue;
},
function DOMEvent(objectActor, grip, depth) { const { safeRawObj } = objectActor; if (!safeRawObj || !Event.isInstance(safeRawObj) || isWorker) { returnfalse;
}
// Add event-specific properties. for (const prop of props) {
let value = safeRawObj[prop]; if (ObjectUtils.isObjectOrFunction(value)) { // Skip properties pointing to objects. if (depth > 1) { continue;
}
value = obj.makeDebuggeeValue(value);
}
preview.properties[prop] = objectActor.createValueGrip(value, depth);
}
// Add any properties we find on the event object. if (!props.length) {
let i = 0; for (const prop in safeRawObj) {
let value = safeRawObj[prop]; if (
prop == "target" ||
prop == "type" ||
value === null || typeof value == "function"
) { continue;
} if (value && typeof value == "object") { if (depth > 1) { continue;
}
value = obj.makeDebuggeeValue(value);
}
preview.properties[prop] = objectActor.createValueGrip(value, depth); if (++i == OBJECT_PREVIEW_MAX_ITEMS) { break;
}
}
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.26Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.