فهرست منبع

Revert "Make very simple shallow copy of aceDelta when there's an undo error"

This reverts commit 1d77a95f17dde6f8792bca1989d65952474b144c.
James Allen 10 سال پیش
والد
کامیت
c2eb49845f
1فایلهای تغییر یافته به همراه9 افزوده شده و 4 حذف شده
  1. 9 4
      services/web/public/coffee/ide/editor/directives/aceEditor/undo/UndoManager.coffee

+ 9 - 4
services/web/public/coffee/ide/editor/directives/aceEditor/undo/UndoManager.coffee

@@ -233,11 +233,16 @@ define [
 			start = aceDelta.start
 			if !start?
 				error = new Error("aceDelta had no start event.")
-				inspectedAceDelta = {}
-				for key, value of aceDelta
-					inspectedAceDelta[key] = typeof value
+				JSONstringifyWithCycles = (o) ->
+					seen = []
+					return JSON.stringify o, (k,v) ->
+						if (typeof v == 'object')
+							if ( !seen.indexOf(v) )
+								return '__cycle__'
+							seen.push(v);
+						return v
 				Raven?.captureException(error, {
-					aceDelta: JSON.stringify(inspectedAceDelta)
+					aceDelta: JSONstringifyWithCycles(aceDelta)
 				})
 				throw error
 			linesBefore = docLines.slice(0, start.row)