{"ScriptPreparationCode":"// Benchmark test data for JSON.stringify vs deep equality\r\n// 10 objects with realistic fills, strokes, and blur arrays\r\n\r\nwindow.testFramesFills1 = [\r\n [\r\n {\r\n fill: \u0022#FF5733\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 87, b: 51, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022linear-gradient(90deg, #FF5733 0%, #33FF57 100%)\u0022,\r\n type: \u0022GRADIENT_LINEAR\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 87, b: 51, a: 1 },\r\n stops: [\r\n { position: 0, color: { r: 255, g: 87, b: 51, a: 1 } },\r\n { position: 1, color: { r: 51, g: 255, b: 87, a: 1 } }\r\n ],\r\n start: [0, 0],\r\n end: [100, 0]\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#3357FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022multiply\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022CROP\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 51, g: 87, b: 255, a: 0.8 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022https://example.com/texture.jpg\u0022,\r\n type: \u0022IMAGE\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022https://example.com/texture.jpg\u0022,\r\n scaleFactor: 1.5,\r\n scaleMode: \u0022TILE\u0022,\r\n uvTransform: { a: 1.5, b: 0, c: 0, d: 1.5, tx: 10, ty: 10 },\r\n color: { r: 255, g: 255, b: 255, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022radial-gradient(circle, #FF5733 0%, #33FF57 50%, #3357FF 100%)\u0022,\r\n type: \u0022GRADIENT_RADIAL\u0022,\r\n blendMode: \u0022screen\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 87, b: 51, a: 1 },\r\n stops: [\r\n { position: 0, color: { r: 255, g: 87, b: 51, a: 1 } },\r\n { position: 0.5, color: { r: 51, g: 255, b: 87, a: 1 } },\r\n { position: 1, color: { r: 51, g: 87, b: 255, a: 1 } }\r\n ]\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#FFFF33\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022overlay\u0022,\r\n visible: false,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 255, b: 51, a: 0.6 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#33FFFF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FILL\u0022,\r\n uvTransform: { a: 2, b: 0.5, c: -0.5, d: 2, tx: 20, ty: -10 },\r\n color: { r: 51, g: 255, b: 255, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#FF33FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022difference\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 51, b: 255, a: 0.9 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022https://example.com/pattern.png\u0022,\r\n type: \u0022IMAGE\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022https://example.com/pattern.png\u0022,\r\n scaleFactor: 0.5,\r\n scaleMode: \u0022CROP\u0022,\r\n uvTransform: { a: 0.5, b: 0, c: 0, d: 0.5, tx: 5, ty: 5 },\r\n color: { r: 255, g: 255, b: 255, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#000000\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 0, b: 0, a: 1 }\r\n }\r\n ]\r\n];\r\n\r\nwindow.testFramesFills2 = [\r\n [\r\n {\r\n fill: \u0022#FF5733\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 87, b: 51, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022linear-gradient(90deg, #FF5733 0%, #33FF57 100%)\u0022,\r\n type: \u0022GRADIENT_LINEAR\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 87, b: 51, a: 1 },\r\n stops: [\r\n { position: 0, color: { r: 255, g: 87, b: 51, a: 1 } },\r\n { position: 1, color: { r: 51, g: 255, b: 87, a: 1 } }\r\n ],\r\n start: [0, 0],\r\n end: [100, 0]\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#3357FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022multiply\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022CROP\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 51, g: 87, b: 255, a: 0.8 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022https://example.com/texture.jpg\u0022,\r\n type: \u0022IMAGE\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022https://example.com/texture.jpg\u0022,\r\n scaleFactor: 1.5,\r\n scaleMode: \u0022TILE\u0022,\r\n uvTransform: { a: 1.5, b: 0, c: 0, d: 1.5, tx: 10, ty: 10 },\r\n color: { r: 255, g: 255, b: 255, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022radial-gradient(circle, #FF5733 0%, #33FF57 50%, #3357FF 100%)\u0022,\r\n type: \u0022GRADIENT_RADIAL\u0022,\r\n blendMode: \u0022screen\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 87, b: 51, a: 1 },\r\n stops: [\r\n { position: 0, color: { r: 255, g: 87, b: 51, a: 1 } },\r\n { position: 0.5, color: { r: 51, g: 255, b: 87, a: 1 } },\r\n { position: 1, color: { r: 51, g: 87, b: 255, a: 1 } }\r\n ]\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#FFFF33\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022overlay\u0022,\r\n visible: false,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 255, b: 51, a: 0.6 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#33FFFF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FILL\u0022,\r\n uvTransform: { a: 2, b: 0.5, c: -0.5, d: 2, tx: 20, ty: -10 },\r\n color: { r: 51, g: 255, b: 255, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#FF33FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022difference\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 51, b: 255, a: 0.9 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022https://example.com/pattern.png\u0022,\r\n type: \u0022IMAGE\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022https://example.com/pattern.png\u0022,\r\n scaleFactor: 0.5,\r\n scaleMode: \u0022CROP\u0022,\r\n uvTransform: { a: 0.5, b: 0, c: 0, d: 0.5, tx: 5, ty: 5 },\r\n color: { r: 255, g: 255, b: 255, a: 1 }\r\n }\r\n ],\r\n [\r\n {\r\n fill: \u0022#000000\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 0, b: 0, a: 1 }\r\n }\r\n ]\r\n];\r\n\r\nwindow.testFramesStrokes1 = [\r\n [\r\n {\r\n line_cap: \u0022round\u0022,\r\n line_join: \u0022round\u0022,\r\n miter_limit: 4,\r\n position: \u0022center\u0022,\r\n width: 2,\r\n fill: {\r\n fill: \u0022#FF0000\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 0, b: 0, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022square\u0022,\r\n line_join: \u0022miter\u0022,\r\n miter_limit: 10,\r\n position: \u0022inside\u0022,\r\n width: 4,\r\n fill: {\r\n fill: \u0022#00FF00\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 255, b: 0, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022butt\u0022,\r\n line_join: \u0022bevel\u0022,\r\n miter_limit: 2,\r\n position: \u0022outside\u0022,\r\n width: 1,\r\n fill: {\r\n fill: \u0022#0000FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: false,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 0, b: 255, a: 1 }\r\n },\r\n visible: false\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022round\u0022,\r\n line_join: \u0022round\u0022,\r\n miter_limit: 8,\r\n position: \u0022center\u0022,\r\n width: 3,\r\n fill: {\r\n fill: \u0022#FFFF00\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022multiply\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 255, b: 0, a: 0.8 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022square\u0022,\r\n line_join: \u0022miter\u0022,\r\n miter_limit: 4,\r\n position: \u0022inside\u0022,\r\n width: 5,\r\n fill: {\r\n fill: \u0022#FF00FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 0, b: 255, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [],\r\n [\r\n {\r\n line_cap: \u0022butt\u0022,\r\n line_join: \u0022round\u0022,\r\n miter_limit: 6,\r\n position: \u0022outside\u0022,\r\n width: 2,\r\n fill: {\r\n fill: \u0022#00FFFF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022screen\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 255, b: 255, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [],\r\n [\r\n {\r\n line_cap: \u0022round\u0022,\r\n line_join: \u0022bevel\u0022,\r\n miter_limit: 4,\r\n position: \u0022center\u0022,\r\n width: 1,\r\n fill: {\r\n fill: \u0022#808080\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 128, g: 128, b: 128, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n []\r\n];\r\n\r\nwindow.testFramesStrokes2 = [\r\n [\r\n {\r\n line_cap: \u0022round\u0022,\r\n line_join: \u0022round\u0022,\r\n miter_limit: 4,\r\n position: \u0022center\u0022,\r\n width: 2,\r\n fill: {\r\n fill: \u0022#FF0000\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 0, b: 0, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022square\u0022,\r\n line_join: \u0022miter\u0022,\r\n miter_limit: 10,\r\n position: \u0022inside\u0022,\r\n width: 4,\r\n fill: {\r\n fill: \u0022#00FF00\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 255, b: 0, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022butt\u0022,\r\n line_join: \u0022bevel\u0022,\r\n miter_limit: 2,\r\n position: \u0022outside\u0022,\r\n width: 1,\r\n fill: {\r\n fill: \u0022#0000FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: false,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 0, b: 255, a: 1 }\r\n },\r\n visible: false\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022round\u0022,\r\n line_join: \u0022round\u0022,\r\n miter_limit: 8,\r\n position: \u0022center\u0022,\r\n width: 3,\r\n fill: {\r\n fill: \u0022#FFFF00\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022multiply\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 255, b: 0, a: 0.8 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [\r\n {\r\n line_cap: \u0022square\u0022,\r\n line_join: \u0022miter\u0022,\r\n miter_limit: 4,\r\n position: \u0022inside\u0022,\r\n width: 5,\r\n fill: {\r\n fill: \u0022#FF00FF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 255, g: 0, b: 255, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [],\r\n [\r\n {\r\n line_cap: \u0022butt\u0022,\r\n line_join: \u0022round\u0022,\r\n miter_limit: 6,\r\n position: \u0022outside\u0022,\r\n width: 2,\r\n fill: {\r\n fill: \u0022#00FFFF\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022screen\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 0, g: 255, b: 255, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n [],\r\n [\r\n {\r\n line_cap: \u0022round\u0022,\r\n line_join: \u0022bevel\u0022,\r\n miter_limit: 4,\r\n position: \u0022center\u0022,\r\n width: 1,\r\n fill: {\r\n fill: \u0022#808080\u0022,\r\n type: \u0022SOLID\u0022,\r\n blendMode: \u0022normal\u0022,\r\n visible: true,\r\n imgUrl: \u0022\u0022,\r\n scaleFactor: 1,\r\n scaleMode: \u0022FIT\u0022,\r\n uvTransform: { a: 1, b: 0, c: 0, d: 1, tx: 0, ty: 0 },\r\n color: { r: 128, g: 128, b: 128, a: 1 }\r\n },\r\n visible: true\r\n }\r\n ],\r\n []\r\n];\r\n\r\nwindow.testFramesBlur1 = [\r\n [{ target: \u0022self\u0022, radius: 5, alpha: 0.8, sigma: 2.5 }],\r\n [{ target: \u0022self\u0022, radius: 10, alpha: 1, sigma: 5 }],\r\n [],\r\n [{ target: \u0022self\u0022, radius: 2, alpha: 0.6, sigma: 1 }],\r\n [{ target: \u0022self\u0022, radius: 15, alpha: 0.9, sigma: 7.5 }],\r\n [{ target: \u0022self\u0022, radius: 8, alpha: 0.7, sigma: 4 }],\r\n [],\r\n [{ target: \u0022self\u0022, radius: 3, alpha: 0.5, sigma: 1.5 }],\r\n [{ target: \u0022self\u0022, radius: 12, alpha: 0.85, sigma: 6 }],\r\n []\r\n];\r\n\r\nwindow.testFramesBlur2 = [\r\n [{ target: \u0022self\u0022, radius: 5, alpha: 0.8, sigma: 2.5 }],\r\n [{ target: \u0022self\u0022, radius: 10, alpha: 1, sigma: 5 }],\r\n [],\r\n [{ target: \u0022self\u0022, radius: 2, alpha: 0.6, sigma: 1 }],\r\n [{ target: \u0022self\u0022, radius: 15, alpha: 0.9, sigma: 7.5 }],\r\n [{ target: \u0022self\u0022, radius: 8, alpha: 0.7, sigma: 4 }],\r\n [],\r\n [{ target: \u0022self\u0022, radius: 3, alpha: 0.5, sigma: 1.5 }],\r\n [{ target: \u0022self\u0022, radius: 12, alpha: 0.85, sigma: 6 }],\r\n []\r\n];\r\n","TestCases":[{"Name":"_.isEqual","Code":"const fillsEqual = _.isEqual(window.testFramesFills1[0], window.testFramesFills2[0]);\r\nconst strokesEqual = _.isEqual(window.testFramesStrokes1[0], window.testFramesStrokes2[0]);\r\nconst blurEqual = _.isEqual(window.testFramesBlur1[0], window.testFramesBlur2[0]);\r\nconsole.log(fillsEqual, strokesEqual, blurEqual);","IsDeferred":false},{"Name":"JSON.stringify","Code":"const fillsEqual = JSON.stringify(window.testFramesFills1[0]) === JSON.stringify(window.testFramesFills2[0]);\r\nconst strokesEqual = JSON.stringify(window.testFramesStrokes1[0]) === JSON.stringify(window.testFramesStrokes2[0]);\r\nconst blurEqual = JSON.stringify(window.testFramesBlur1[0]) === JSON.stringify(window.testFramesBlur2[0]);\r\nconsole.log(fillsEqual, strokesEqual, blurEqual);","IsDeferred":false},{"Name":"JSON.stringify with sorted keys","Code":"const sortedStringify = (obj) =\u003E JSON.stringify(obj, Object.keys(obj || {}).sort());\r\nconst fillsEqual = sortedStringify(window.testFramesFills1[0]) === sortedStringify(window.testFramesFills2[0]);\r\nconst strokesEqual = sortedStringify(window.testFramesStrokes1[0]) === sortedStringify(window.testFramesStrokes2[0]);\r\nconst blurEqual = sortedStringify(window.testFramesBlur1[0]) === sortedStringify(window.testFramesBlur2[0]);\r\nconsole.log(fillsEqual, strokesEqual, blurEqual);","IsDeferred":false}]}