firefox-devtools / devtools-core

:rocket: Packages for Firefox DevTools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ElementNode with LongString attributes throw

nchevobbe opened this issue · comments

Steps to reproduce:

  1. Evaluate:
var div = document.createElement("div");
div.setAttribute("data-test","a".repeat(50000));
 div;

Expected results:
The data-test attribute is displayed with longString's initial value

Actual results:
The data-test attribute fails to render (Invalid Object), and there is an error in the browser console:

10:08:06.424 TypeError: str.replace is not a function
Stack trace:
[object Object] 1 reps.js:337:7
	wrappedFunction resource://devtools/client/shared/components/reps/reps.js:337:7
	getElements/attributeElements< resource://devtools/client/shared/components/reps/reps.js:4070:108
	getElements resource://devtools/client/shared/components/reps/reps.js:4068:29
	ElementNode resource://devtools/client/shared/components/reps/reps.js:4007:18
	wrappedFunction resource://devtools/client/shared/components/reps/reps.js:335:14
	Rep resource://devtools/client/shared/components/reps/reps.js:586:10
	renderGrip resource://devtools/client/shared/components/reps/reps.js:4991:12
	renderTreeItem resource://devtools/client/shared/components/reps/reps.js:4944:21
	render resource://devtools/client/shared/components/reps/reps.js:5240:8
	_renderValidatedComponentWithoutOwnerOrContext resource://devtools/client/shared/vendor/react-dom.js:5260:25
	_renderValidatedComponent resource://devtools/client/shared/vendor/react-dom.js:5283:27
	performInitialMount resource://devtools/client/shared/vendor/react-dom.js:4823:25
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:4719:16
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	mountChildren resource://devtools/client/shared/vendor/react-dom.js:10612:28
	_createInitialChildren resource://devtools/client/shared/vendor/react-dom.js:6343:27
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:6162:7
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	performInitialMount resource://devtools/client/shared/vendor/react-dom.js:4832:18
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:4719:16
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	performInitialMount resource://devtools/client/shared/vendor/react-dom.js:4832:18
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:4719:16
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	mountChildren resource://devtools/client/shared/vendor/react-dom.js:10612:28
	_createInitialChildren resource://devtools/client/shared/vendor/react-dom.js:6343:27
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:6162:7
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	mountChildren resource://devtools/client/shared/vendor/react-dom.js:10612:28
	_createInitialChildren resource://devtools/client/shared/vendor/react-dom.js:6343:27
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:6162:7
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	mountChildren resource://devtools/client/shared/vendor/react-dom.js:10612:28
	_createInitialChildren resource://devtools/client/shared/vendor/react-dom.js:6343:27
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:6162:7
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	mountChildren resource://devtools/client/shared/vendor/react-dom.js:10612:28
	_createInitialChildren resource://devtools/client/shared/vendor/react-dom.js:6343:27
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:6162:7
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	performInitialMount resource://devtools/client/shared/vendor/react-dom.js:4832:18
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:4719:16
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	performInitialMount resource://devtools/client/shared/vendor/react-dom.js:4832:18
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:4719:16
	mountComponent resource://devtools/client/shared/vendor/react-dom.js:11721:18
	updateChildren resource://devtools/client/shared/vendor/react-dom.js:4357:35
	_reconcilerUpdateChildren resource://devtools/client/shared/vendor/react-dom.js:10587:7
	_updateChildren resource://devtools/client/shared/vendor/react-dom.js:10686:26
	updateChildren resource://devtools/client/shared/vendor/react-dom.js:10673:7
	_updateDOMChildren resource://devtools/client/shared/vendor/react-dom.js:6582:7
	updateComponent resource://devtools/client/shared/vendor/react-dom.js:6400:5
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:6362:5
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:11800:5
	_updateRenderedComponent resource://devtools/client/shared/vendor/react-dom.js:5215:7
	_performComponentUpdate resource://devtools/client/shared/vendor/react-dom.js:5185:5
	updateComponent resource://devtools/client/shared/vendor/react-dom.js:5106:7
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:5008:5
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:11800:5
	_updateRenderedComponent resource://devtools/client/shared/vendor/react-dom.js:5215:7
	_performComponentUpdate resource://devtools/client/shared/vendor/react-dom.js:5185:5
	updateComponent resource://devtools/client/shared/vendor/react-dom.js:5106:7
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:5008:5
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:11800:5
	_updateRenderedComponent resource://devtools/client/shared/vendor/react-dom.js:5215:7
	_performComponentUpdate resource://devtools/client/shared/vendor/react-dom.js:5185:5
	updateComponent resource://devtools/client/shared/vendor/react-dom.js:5106:7
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:5008:5
	receiveComponent resource://devtools/client/shared/vendor/react-dom.js:11800:5
	_updateRenderedComponent resource://devtools/client/shared/vendor/react-dom.js:5215:7
	_performComponentUpdate resource://devtools/client/shared/vendor/react-dom.js:5185:5
	updateComponent resource://devtools/client/shared/vendor/react-dom.js:5106:7
	performUpdateIfNecessary resource://devtools/client/shared/vendor/react-dom.js:5022:7
	performUpdateIfNecessary resource://devtools/client/shared/vendor/react-dom.js:11832:5
	runBatchedUpdates resource://devtools/client/shared/vendor/react-dom.js:13118:5
	perform resource://devtools/client/shared/vendor/react-dom.js:14930:13
	perform resource://devtools/client/shared/vendor/react-dom.js:14930:13
	perform resource://devtools/client/shared/vendor/react-dom.js:13057:12
	flushBatchedUpdates resource://devtools/client/shared/vendor/react-dom.js:13140:7
	closeAll resource://devtools/client/shared/vendor/react-dom.js:14996:11
	perform resource://devtools/client/shared/vendor/react-dom.js:14943:11
	batchedUpdates resource://devtools/client/shared/vendor/react-dom.js:8995:14
	enqueueUpdate resource://devtools/client/shared/vendor/react-dom.js:13168:5
	enqueueUpdate resource://devtools/client/shared/vendor/react-dom.js:12758:3
	enqueueSetState resource://devtools/client/shared/vendor/react-dom.js:12952:5
	[7]</ReactComponent.prototype.setState resource://devtools/client/shared/vendor/react.js:543:3
	onStateChange resource://devtools/client/shared/vendor/react-redux.js:1308:11
	dispatch resource://devtools/client/shared/vendor/redux.js:336:8
	thunk/</< resource://devtools/client/shared/redux/middleware/thunk.js:16:9
	setTimeoutIfNeeded/this.throttledDispatchPromise</< resource://devtools/client/webconsole/new-console-output/new-console-output-wrapper.js:307:9

@nchevobbe Hah! Seems that my PR (#868) fixed this one too. 😎

screen shot 2017-12-20 at 6 33 44 pm

@nchevobbe Hmm. I think that this one should be fixed too as a side effect of #868. 🤔

yes, it is ! We should add a test for it though, so we don't regress

I am going to work on it