Closed pixelzoom closed 7 years ago
Newer lodash also has a nice _.endsWith function that @andrewadare and I would like to use, it's another good reason to upgrade.
It is unclear whether we should upgrade to lodash "core" or "full", they differ by about a size of 4x.
It is also unclear how much testing will be necessary, or if there are API changes that will be incompatible (if backward compatibility is broken).
A Google search of "lodash backward compatibility" recommends looking at the changelog, https://github.com/lodash/lodash/wiki/Changelog. The most obvious breaking changes can be identified by searching for "Renamed" and "Removed". I'm sure there are others.
The lastest version of lodash is 4.13.1, were's using 2.4.1.
@pixelzoom said it might make sense to add StringUtils.endsWith
... using the implementation from this polyfill: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
In the above commit, StringUtils obtained endsWith from MDN polyfill as well as unit tests to cover it's basic usage.
I'm not opposed to updating lodash but I think StringUtils is a better place for endsWith, and I like using the MDN implementation.
The lodash-migrate package may be useful https://www.npmjs.com/package/lodash-migrate
7/14/16 dev meeting: Assigned to me. First thing I'll do is survey what we're currently using. Try to use core vs full package.
I wrote a script to find (and count) uses of lodash functions, see lodashFind.sh.
Here's the current output:
% lodashFind.sh 1048 extend 300 each 102 random 58 map 54 times 54 contains 52 indexOf 32 max 31 filter 30 clone 26 shuffle 25 sortBy 25 pull 24 forEach 22 keys 21 reduce 17 some 14 find 13 min 12 range 10 every 9 uniq 8 without 8 pick 8 omit 7 isFinite 7 after 6 isUndefined 6 flatten 6 any 4 remove 4 isNumber 4 isEqual 4 first 3 size 3 last 3 isEmpty 3 identity 3 defaults 2 values 2 unique 2 union 2 sample 2 noop 2 lastIndexOf 2 foldl 2 difference 2 debounce 2 constant 1 zip 1 tail 1 isNaN 1 isFunction 1 isArray 1 intersection 1 inject 1 groupBy 1 forOwn 1 findIndex 1 extends 1 defined 1 chain
According to https://github.com/lodash/lodash/wiki/build-differences, the core build is designed to be Backbone ≥ v1.3.0 compatible, is 4kB gzipped, and contains only 64 methods (sic). Four of PhET's top six (extend, random, times, contains) are not included in core, so we're not going to be able to use the core build.
There is a significant size difference between core and full builds. https://lodash.com says:
Core build (~4 kB gzipped) Full build (~22 kB gzipped)
The version that PhET is currently using (sherpa/lib/lodash-2.4.1.js) is reportedly a custom build. But it is 28kB minified, which is larger than the full build. So I'm wondering if it really is a custom build.
Custom build commands and options are described at https://lodash.com/custom-builds. Does anyone know who created the custom build, what commands & options were used, etc?
Disadvantages of using a custom build:
(1) If you want to use a lodash function that you haven't used previously, consulting the lodash documentation is insufficient. You will also need to consult the source in sherpa/lib/ before using a function, to see if it was included in the custom build.
(2) If a function that you want to use is not included in the custom build, you'll need to create a new custom build if you want to use that function. This will be a significant barrier to using lodash to its full potential.
So my recommendation would be to use the full build.
I downloaded the various pre-built versions (4.13.1) that are available from https://www.jsdelivr.com/projects/lodash, and here's what I see:
% ls -lh | awk '{print $5 " " $9}' 112K lodash.core.js 12K lodash.core.min.js 25K lodash.fp.js 9.4K lodash.fp.min.js 504K lodash.js 66K lodash.min.js 10K mapping.fp.js
The 2 files that would replace what's currently in sherpa/lib/ are:
504K lodash.js 66K lodash.min.js
Compare sizes to what's currently in sherpa:
224K lodash-2.4.1.js 28K lodash-2.4.1.min.js
Labeling for discussion at developer meeting.
7/21/16 dev meeting: Consensus is to use full build.
Apparently _.extend
is deprecated in the new lodash. It has been renamed to _.assignIn
it also looks like _.assign()
may be appropriate for our use cases.
I'll create a separate issue for this.
Looking more closely at the [lodash changelog]()... For major releases, they have sections titled "Compatibility Warnings" and "Low Risk Compatibility Warnings".
PhET is currently using v2.4.1, so the warnings for v3.0.0 and v.4.0.0 are relevant:
v3.0.0: https://github.com/lodash/lodash/wiki/Changelog#v300 v4.0.0: https://github.com/lodash/lodash/wiki/Changelog#v400
There is definitely mention of functions used by PhET in the warnings, so I'm expecting there will be breakable, some of it possibly subtle/odd.
In the middle of the upgrade to 4.13.1, I discovered that 4.14.0 was released 2 days ago. The CDN does not currently have built versions available, and I think that it makes sense to wait. Especially since the 4.14.0 release notes say:
• Optimized .endsWith, .negate, & _.startsWith
... and a desire to use _.endsWith
(https://github.com/phetsims/sherpa/issues/58#issuecomment-232391230) was what restarted this issue.
True, but we now have StringUtils.endsWith with the MDN implementation.
I asked about availability of 4.14.0 on the CDN in https://github.com/lodash/lodash/issues/2544, and was told that it's "already there". It still doesn't show up on the "CDN copies" link provided on the lodash project page, and it's not a browser caching issue, maybe a jsdelivr issue. Anyway... My question did get me direct links. Here are the direct links to the deliverables that PhET needs:
https://cdn.jsdelivr.net/lodash/4.14.0/lodash.js https://cdn.jsdelivr.net/lodash/4.14.0/lodash-min.js
4.14.1 has been released and is available via the CDN, https://www.jsdelivr.com/projects/lodash
Deferring this until after my vacation.
Four of PhET's top six (extend, random, times, contains) are not included in core, so we're not going to be able to use the core build.
How did you conclude that lodash.core dosen't contain extend
? If I click on lodash core build from their homepage, it shows me this file:
https://raw.githubusercontent.com/lodash/lodash/4.15.0/dist/lodash.core.js
which includes the line:
lodash.extend = assignIn;
Hence it looks like lodash.core contains extend. I also tested in the browser and confirmed that _.extend exists in the core.
We will no longer be using _.random. I confirmed that times
and contains
are not in the core build.
I was re-investigating this because after looking at many of lodash's method signatures in https://github.com/phetsims/dot/issues/58 , I'm becoming aware how many of the methods have flexible arguments. This can lead to odd behavior as identified in the dot issue, but also disables browser optimizations and increases complexity for tasks for which PhET is often only using a very simple subset.
Here's the top of our list of used methods and what is in core is checked:
@samreid asked:
How did you conclude that lodash.core dosen't contain extend?
Based on the documentation at https://github.com/lodash/lodash/wiki/build-differences.
Regardless, we concluded (after much discussion) that requiring PhET developers to stick to a subset of lodash was undesirable.
@samreid Are you proposing that we revisit the issue of whether to use core vs full build? Or should I proceed with updating to a full build?
@samreid said:
I was re-investigating this because after looking at many of lodash's method signatures in phetsims/dot#58 , I'm becoming aware how many of the methods have flexible arguments. This can lead to odd behavior as identified in the dot issue, but also disables browser optimizations and increases complexity for tasks for which PhET is often only using a very simple subset.
Or perhaps you're proposing that we ditch lodash altogether and implement the functions that we need?
Based on the documentation at https://github.com/lodash/lodash/wiki/build-differences.
The documentation indicates that lodash.core has _.assignIn
, which is the alias for _.extend
Regardless, we concluded (after much discussion) that requiring PhET developers to stick to a subset of lodash was undesirable.
We may have come to the wrong conclusion based in part on incorrect assumptions.
Our decision was based in part on the assumption that lodash.core was missing _.extend, which is incorrect. Choosing lodash.min (71KB) over lodash-core.min (12KB) means choosing 59KB of bloat for every file op: building sims, uploading sims, disk space, downloading sims, inspecting minified files, etc. Rutherford Scattering is 1466 KB, so in this case it amounts to 4% bloat. If today some PhET developer found a way to cut all of our sims down by 4% we would be very happy. Hence I think we should revisit this decision.
@samreid said:
Our decision was based in part on the assumption that lodash.core was missing _.extend, which is incorrect.
Yes, in part. But we also said that expecting developers to know which functions are included in core was unreasonable. And the minute that someone wanted something that's not in core (e.g. endsWith
, which started this process), then we'd be regretting the decision to save a few kilobytes.
I will put this issue on hold, and label for (re)discussion at developer meeting.
Consensus: let's continue with full for now. 59KB is not too worrisome, and we can avoid the work paring down to core, and the overhead of having to remember what is in core vs full, and mitigating risk of later wishing we had something in core.
@ariel-phet Based on current priorities, I'm unlikely to get to this anytime soon. If you want to leave it assigned to me, that's fine. If you want it done sometime in the next 2-3 months, you should probably assign it to someone else.
Marking for dev meeting, I want to get a sense for the team's feeling of the priority of this upgrade (but likely will have someone take it over from @pixelzoom)
@jbphet will put it on his calendar to remind us in a month or so.
Oops, accidentally closed, reopening.
In https://github.com/phetsims/sherpa/issues/65#issuecomment-249918315, @andrewadare said:
I have been assigned to test .assign, but this is blocked by #58. Un-assigning myself for now; please re-assign me if/when .assign should be tested in a new lodash library version.
My reminder went off to mark this for developer meeting.
Deferring discussion till next week.
10/27/16 - We will revisit this issue in mid-december, @jbphet will create a reminder for us to revisit.
My reminder went off, and I've labeled this for discussion at developer meeting.
Discussed in the 12/15/2016 dev meeting, we're hitting the snooze button on this until early Feb.
Welcome to early February! In developing CCK, I could use lodash _.minBy() but it looks like it was introduced in 4.0.0. It seems we are still using 2.4.1.
@samreid said:
In developing CCK, I could use lodash _.minBy() ...
Example?
ElectronPropagator.js could read:
chooseCircuitElement: function( circuitLocations ) {
var self = this;
// Choose the circuit location with the lowest density
var minBY = _.minBy( circuitLocations, function( circuitLocation ) {
return circuitLocation.getDensity( self.circuit );
} );
I'm going to look into a lodash upgrade now.
I'm running into https://github.com/mgonto/restangular/issues/1298
We could switch to _.includes?
Agreed, I'm testing that out in my working copy.
Initial signs are promising:
I'll run a full aqua.
.contains, .any and _.unique are all missing.
Testing complete, let's see what we have:
Here's the error log: Sim errors (dev):
gravity-and-orbits Uncaught TypeError: .any is not a function TypeError: .any is not a function at http://localhost/gravity-and-orbits/js/common/model/Body.js?bust=1486154773115:377:18 at new DerivedProperty (http://localhost/axon/js/DerivedProperty.js?bust=1486154773115:61:35) at Sun.anyPropertyDifferent (http://localhost/gravity-and-orbits/js/common/model/Body.js?bust=1486154773115:376:14) at new TimeControlPanel (http://localhost/gravity-and-orbits/js/common/view/TimeControlPanel.js?bust=1486154773115:49:56) at new GravityAndOrbitsPlayArea (http://localhost/gravity-and-orbits/js/common/view/GravityAndOrbitsPlayArea.js?bust=1486154773115:131:28) at GravityAndOrbitsMode.init (http://localhost/gravity-and-orbits/js/common/module/GravityAndOrbitsMode.js?bust=1486154773115:216:21) at CartoonModule.GravityAndOrbitsModule [as constructor] (http://localhost/gravity-and-orbits/js/common/module/GravityAndOrbitsModule.js?bust=1486154773115:69:32) at new CartoonModule (http://localhost/gravity-and-orbits/js/cartoon/module/CartoonModule.js?bust=1486154773115:20:28) at CartoonScreen.createModel (http://localhost/gravity-and-orbits/js/cartoon/CartoonScreen.js?bust=1486154773115:37:27) at CartoonScreen.initializeModel (http://localhost/joist/js/Screen.js?bust=1486154773115:183:26) molarity Uncaught Error: Assertion failed: undefined Error: Assertion failed: undefined at window.assertions.assertFunction (http://localhost/assert/js/assert.js:21:13) at Array. (http://localhost/molarity/js/molarity/view/PrecipitateNode.js?bust=1486154884499:66:17) at Emitter.emit2 (http://localhost/axon/js/Emitter.js?bust=1486154884499:147:49) at DerivedProperty._notifyObservers (http://localhost/axon/js/Property.js?bust=1486154884499:176:29) at DerivedProperty._setAndNotifyObservers (http://localhost/axon/js/Property.js?bust=1486154884499:165:14) at DerivedProperty.set (http://localhost/axon/js/Property.js?bust=1486154884499:133:16) at Array.listener (http://localhost/axon/js/DerivedProperty.js?bust=1486154884499:78:34) at Emitter.emit2 (http://localhost/axon/js/Emitter.js?bust=1486154884499:147:49) at Property._notifyObservers (http://localhost/axon/js/Property.js?bust=1486154884499:176:29) at Property.setAndNotifyObservers (http://localhost/axon/js/Property.js?bust=1486154884499:165:14) at Property.set (http://localhost/axon/js/Property.js?bust=1486154884499:133:16) molecule-shapes Uncaught TypeError: .unique is not a function TypeError: .unique is not a function at Function.realPermutations (http://localhost/molecule-shapes/js/common/model/LocalShape.js?bust=1486154897964:149:28) at new RealMolecule (http://localhost/molecule-shapes/js/common/model/RealMolecule.js?bust=1486154897964:79:76) at new RealMoleculesModel (http://localhost/molecule-shapes/js/real/RealMoleculesModel.js?bust=1486154897964:32:28) at RealMoleculesScreen.createModel (http://localhost/molecule-shapes/js/real/RealMoleculesScreen.js?bust=1486154897964:36:27) at RealMoleculesScreen.initializeModel (http://localhost/joist/js/Screen.js?bust=1486154897964:183:26) at Array. (http://localhost/joist/js/Sim.js?bust=1486154897964:607:18) at http://localhost/joist/js/Sim.js?bust=1486154897964:618:27 molecule-shapes-basics Uncaught TypeError: .unique is not a function TypeError: _.unique is not a function at Function.realPermutations (http://localhost/molecule-shapes/js/common/model/LocalShape.js?bust=1486154901493:149:28) at new RealMolecule (http://localhost/molecule-shapes/js/common/model/RealMolecule.js?bust=1486154901493:79:76) at new RealMoleculesModel (http://localhost/molecule-shapes/js/real/RealMoleculesModel.js?bust=1486154901493:32:28) at RealMoleculesScreen.createModel (http://localhost/molecule-shapes/js/real/RealMoleculesScreen.js?bust=1486154901493:36:27) at RealMoleculesScreen.initializeModel (http://localhost/joist/js/Screen.js?bust=1486154901493:183:26) at Array. (http://localhost/joist/js/Sim.js?bust=1486154901493:607:18) at http://localhost/joist/js/Sim.js?bust=1486154901493:618:27 molecules-and-light Uncaught Error: Load timeout for modules: mipmap!BRAND/logo.png_unnormalized19,mipmap!BRAND/logo-on-white.png_unnormalized20,mipmap!MOLECULES_AND_LIGHT/infrared-source.png_unnormalized30,mipmap!MOLECULES_AND_LIGHT/flashlight.png_unnormalized31,mipmap!MOLECULES_AND_LIGHT/microwave-source.png_unnormalized32,mipmap!MOLECULES_AND_LIGHT/uv-source.png_unnormalized33,mipmap!JOIST/keyboard-icon.png_unnormalized54,mipmap!JOIST/keyboard-icon-on-white.png_unnormalized55,JOIST/AboutDialog,../../chipper/js/common/mipmapDownscale,MOLECULES_AND_LIGHT/photon-absorption/model/PhotonHoldStrategy,MOLECULES_AND_LIGHT/photon-absorption/model/NullPhotonAbsorptionStrategy,MOLECULES_AND_LIGHT/photon-absorption/model/PhotonAbsorptionStrategy,MOLECULES_AND_LIGHT/photon-absorption/view/AtomNode,MOLECULES_AND_LIGHT/photon-absorption/view/AtomicBondNode,SUN/ColorConstants,SUN/buttons/RadioButtonGroupAppearance,SUN/buttons/RadioButtonGroupMember,NITROGLYCERIN/nitroglycerin,image!MOLECULES_AND_LIGHT/microwave-photon.png_unnormalized56,image,image!MOLECULES_AND_LIGHT/photon-660.png_unnormalized57,image!MOLECULES_AND_LIGHT/thin2.png_unnormalized58,image!MOLECULES_AND_LIGHT/photon-100.png_unnormalized59,SCENERY_PHET/ArrowShape,SCENERY_PHET/ResetShape,SUN/buttons/RoundPushButton,SUN/buttons/RoundToggleButton,SUN/ToggleNode,MOLECULES_AND_LIGHT/photon-absorption/view/EmissionRateControlSliderNode,image!MOLECULES_AND_LIGHT/infrared-source.png_unnormalized60,image!MOLECULES_AND_LIGHT/flashlight.png_unnormalized61,image!MOLECULES_AND_LIGHT/microwave-source.png_unnormalized62,image!MOLECULES_AND_LIGHT/uv-source.png_unnormalized63,image!MOLECULES_AND_LIGHT/infrared-source-off.png_unnormalized64,image!MOLECULES_AND_LIGHT/flashlight-off.png_unnormalized65,image!MOLECULES_AND_LIGHT/uv-source-off.png_unnormalized66,SCENERY/display/drawables/CircleDOMDrawable,SCENERY/display/drawables/CircleSVGDrawable,SCENERY/display/drawables/CircleCanvasDrawable,SUN/buttons/ButtonModel,SUN/CallbackTimer,SCENERY/nodes/AlignBox,SCENERY_PHET/VisibleColor,SCENERY/util/Gradient,SCENERY/display/drawables/LineCanvasDrawable,SCENERY/display/drawables/LineSVGDrawable,TANDEM/scenery/nodes/TandemNode,SCENERY/display/drawables/CanvasNodeDrawable,SCENERY/display/drawables/PathStatefulDrawable,DOT/Vector3,DOT/Matrix4,SCENERY/display/FittedBlock,SCENERY/display/Stitcher,SCENERY/display/GreedyStitcher,SCENERY/display/RebuildStitcher,SCENERY/util/SpriteSheet,SCENERY/display/drawables/ImageCanvasDrawable,SCENERY/display/drawables/ImageDOMDrawable,SCENERY/display/drawables/ImageSVGDrawable,SCENERY/display/drawables/ImageWebGLDrawable,SCENERY/display/PaintSVGState,SCENERY/input/Mouse,SCENERY/input/Touch,SCENERY/input/Pen,SCENERY/input/Event,SCENERY/input/BatchedDOMEvent,SCENERY/overlays/ShapeBasedOverlay,SCENERY/display/drawables/TextStatefulDrawable,SCENERY/display/drawables/PaintableStatefulDrawable,KITE/segments/Segment,KITE/util/LineStyles,PHET_CORE/arrayRemove,SCENERY/display/PaintObserver,SCENERY/display/RelativeTransform,SCENERY/display/Fittability,JOIST/UpdateNodes,PHET_CORE/detectPrefixEvent http://requirejs.org/docs/errors.html#timeout Error: Load timeout for modules: mipmap!BRAND/logo.png_unnormalized19,mipmap!BRAND/logo-on-white.png_unnormalized20,mipmap!MOLECULES_AND_LIGHT/infrared-source.png_unnormalized30,mipmap!MOLECULES_AND_LIGHT/flashlight.png_unnormalized31,mipmap!MOLECULES_AND_LIGHT/microwave-source.png_unnormalized32,mipmap!MOLECULES_AND_LIGHT/uv-source.png_unnormalized33,mipmap!JOIST/keyboard-icon.png_unnormalized54,mipmap!JOIST/keyboard-icon-on-white.png_unnormalized55,JOIST/AboutDialog,../../chipper/js/common/mipmapDownscale,MOLECULES_AND_LIGHT/photon-absorption/model/PhotonHoldStrategy,MOLECULES_AND_LIGHT/photon-absorption/model/NullPhotonAbsorptionStrategy,MOLECULES_AND_LIGHT/photon-absorption/model/PhotonAbsorptionStrategy,MOLECULES_AND_LIGHT/photon-absorption/view/AtomNode,MOLECULES_AND_LIGHT/photon-absorption/view/AtomicBondNode,SUN/ColorConstants,SUN/buttons/RadioButtonGroupAppearance,SUN/buttons/RadioButtonGroupMember,NITROGLYCERIN/nitroglycerin,image!MOLECULES_AND_LIGHT/microwave-photon.png_unnormalized56,image,image!MOLECULES_AND_LIGHT/photon-660.png_unnormalized57,image!MOLECULES_AND_LIGHT/thin2.png_unnormalized58,image!MOLECULES_AND_LIGHT/photon-100.png_unnormalized59,SCENERY_PHET/ArrowShape,SCENERY_PHET/ResetShape,SUN/buttons/RoundPushButton,SUN/buttons/RoundToggleButton,SUN/ToggleNode,MOLECULES_AND_LIGHT/photon-absorption/view/EmissionRateControlSliderNode,image!MOLECULES_AND_LIGHT/infrared-source.png_unnormalized60,image!MOLECULES_AND_LIGHT/flashlight.png_unnormalized61,image!MOLECULES_AND_LIGHT/microwave-source.png_unnormalized62,image!MOLECULES_AND_LIGHT/uv-source.png_unnormalized63,image!MOLECULES_AND_LIGHT/infrared-source-off.png_unnormalized64,image!MOLECULES_AND_LIGHT/flashlight-off.png_unnormalized65,image!MOLECULES_AND_LIGHT/uv-source-off.png_unnormalized66,SCENERY/display/drawables/CircleDOMDrawable,SCENERY/display/drawables/CircleSVGDrawable,SCENERY/display/drawables/CircleCanvasDrawable,SUN/buttons/ButtonModel,SUN/CallbackTimer,SCENERY/nodes/AlignBox,SCENERY_PHET/VisibleColor,SCENERY/util/Gradient,SCENERY/display/drawables/LineCanvasDrawable,SCENERY/display/drawables/LineSVGDrawable,TANDEM/scenery/nodes/TandemNode,SCENERY/display/drawables/CanvasNodeDrawable,SCENERY/display/drawables/PathStatefulDrawable,DOT/Vector3,DOT/Matrix4,SCENERY/display/FittedBlock,SCENERY/display/Stitcher,SCENERY/display/GreedyStitcher,SCENERY/display/RebuildStitcher,SCENERY/util/SpriteSheet,SCENERY/display/drawables/ImageCanvasDrawable,SCENERY/display/drawables/ImageDOMDrawable,SCENERY/display/drawables/ImageSVGDrawable,SCENERY/display/drawables/ImageWebGLDrawable,SCENERY/display/PaintSVGState,SCENERY/input/Mouse,SCENERY/input/Touch,SCENERY/input/Pen,SCENERY/input/Event,SCENERY/input/BatchedDOMEvent,SCENERY/overlays/ShapeBasedOverlay,SCENERY/display/drawables/TextStatefulDrawable,SCENERY/display/drawables/PaintableStatefulDrawable,KITE/segments/Segment,KITE/util/LineStyles,PHET_CORE/arrayRemove,SCENERY/display/PaintObserver,SCENERY/display/RelativeTransform,SCENERY/display/Fittability,JOIST/UpdateNodes,PHETCORE/detectPrefixEvent http://requirejs.org/docs/errors.html#timeout at makeError (http://localhost/sherpa/lib/require-2.1.11.js:166:13) at checkLoaded (http://localhost/sherpa/lib/require-2.1.11.js:684:15) at http://localhost/sherpa/lib/require-2.1.11.js:705:13 neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at NeuronModel.stepInTime (http://localhost/neuron/js/neuron/model/NeuronModel.js?bust=1486154920133:439:14) at Live.step (http://localhost/neuron/js/neuron/recordandplayback/Live.js?bust=1486154920133:32:35) at NeuronModel.stepMode (http://localhost/neuron/js/neuron/recordandplayback/RecordAndPlaybackModel.js?bust=1486154920133:88:17) at NeuronModel.step (http://localhost/neuron/js/neuron/recordandplayback/RecordAndPlaybackModel.js?bust=1486154920133:79:14) at NeuronModel.step (http://localhost/neuron/js/neuron/model/NeuronModel.js?bust=1486154920133:297:45) at NeuronClockModelAdapter.tick (http://localhost/neuron/js/neuron/model/NeuronClockModelAdapter.js?bust=1486154920133:130:32) at NeuronClockModelAdapter.step (http://localhost/neuron/js/neuron/model/NeuronClockModelAdapter.js?bust=1486154920133:86:16) at Sim.stepSimulation (http://localhost/joist/js/Sim.js?bust=1486154920133:773:26) at Sim.runAnimationLoop (http://localhost/joist/js/Sim.js?bust=1486154920133:707:12) at http://localhost/joist/js/Sim.js?bust=1486154920133:649:22 neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at NeuronModel.stepInTime (http://localhost/neuron/js/neuron/model/NeuronModel.js?bust=1486154920133:439:14) at Live.step (http://localhost/neuron/js/neuron/recordandplayback/Live.js?bust=1486154920133:32:35) at NeuronModel.stepMode (http://localhost/neuron/js/neuron/recordandplayback/RecordAndPlaybackModel.js?bust=1486154920133:88:17) at NeuronModel.step (http://localhost/neuron/js/neuron/recordandplayback/RecordAndPlaybackModel.js?bust=1486154920133:79:14) at NeuronModel.step (http://localhost/neuron/js/neuron/model/NeuronModel.js?bust=1486154920133:297:45) at NeuronClockModelAdapter.tick (http://localhost/neuron/js/neuron/model/NeuronClockModelAdapter.js?bust=1486154920133:130:32) at NeuronClockModelAdapter.step (http://localhost/neuron/js/neuron/model/NeuronClockModelAdapter.js?bust=1486154920133:86:16) at Sim.stepSimulation (http://localhost/joist/js/Sim.js?bust=1486154920133:773:26) at Sim.runAnimationLoop (http://localhost/joist/js/Sim.js?bust=1486154920133:707:12) neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at NeuronModel.stepInTime (http://localhost/neuron/js/neuron/model/NeuronModel.js?bust=1486154920133:439:14) at Live.step (http://localhost/neuron/js/neuron/recordandplayback/Live.js?bust=1486154920133:32:35) at NeuronModel.stepMode (http://localhost/neuron/js/neuron/recordandplayback/RecordAndPlaybackModel.js?bust=1486154920133:88:17) at NeuronModel.step (http://localhost/neuron/js/neuron/recordandplayback/RecordAndPlaybackModel.js?bust=1486154920133:79:14) at NeuronModel.step (http://localhost/neuron/js/neuron/model/NeuronModel.js?bust=1486154920133:297:45) at NeuronClockModelAdapter.tick (http://localhost/neuron/js/neuron/model/NeuronClockModelAdapter.js?bust=1486154920133:130:32) at NeuronClockModelAdapter.step (http://localhost/neuron/js/neuron/model/NeuronClockModelAdapter.js?bust=1486154920133:86:16) at Sim.stepSimulation (http://localhost/joist/js/Sim.js?bust=1486154920133:773:26) at Sim.runAnimationLoop (http://localhost/joist/js/Sim.js?bust=1486154920133:707:12) reactants-products-and-leftovers Uncaught TypeError: Cannot read property 'height' of undefined TypeError: Cannot read property 'height' of undefined at new QuantitiesNode (http://localhost/reactants-products-and-leftovers/js/common/view/QuantitiesNode.js?bust=1486155001965:216:89) at new BeforeAfterNode (http://localhost/reactants-products-and-leftovers/js/common/view/BeforeAfterNode.js?bust=1486155001965:93:27) at http://localhost/reactants-products-and-leftovers/js/sandwiches/view/SandwichesView.js?bust=1486155001965:55:16 at http://localhost/reactants-products-and-leftovers/js/common/view/RPALScreenView.js?bust=1486155001965:72:31 at Property.link (http://localhost/axon/js/Property.js?bust=1486155001965:218:11) at SandwichesView.RPALScreenView [as constructor] (http://localhost/reactants-products-and-leftovers/js/common/view/RPALScreenView.js?bust=1486155001965:67:28) at new SandwichesView (http://localhost/reactants-products-and-leftovers/js/sandwiches/view/SandwichesView.js?bust=1486155001965:36:20) at SandwichesScreen.createView (http://localhost/reactants-products-and-leftovers/js/sandwiches/SandwichesScreen.js?bust=1486155001965:42:34) at SandwichesScreen.initializeView (http://localhost/joist/js/Screen.js?bust=1486155001965:193:25) at Array. (http://localhost/joist/js/Sim.js?bust=1486155001965:610:18) circuit-construction-kit-black-box-study Uncaught TypeError: .foldl is not a function TypeError: _.foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:986:13660) at e.runAnimationLoop (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:986:13013) circuit-construction-kit-black-box-study Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:986:13660) at e.runAnimationLoop (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:986:13013) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) energy-forms-and-changes Uncaught RangeError: Maximum call stack size exceeded RangeError: Maximum call stack size exceeded at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4746) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at e.stepInTime (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:17836) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:25055) at e.stepMode (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26217) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26173) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:15999) at e.tick (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12530) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12117) at e.stepSimulation (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9775) at e.runAnimationLoop (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9128) neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at e.stepInTime (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:17836) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:25055) at e.stepMode (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26217) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26173) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:15999) at e.tick (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12530) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12117) at e.stepSimulation (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9775) at e.runAnimationLoop (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9128) neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at e.stepInTime (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:17836) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:25055) at e.stepMode (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26217) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26173) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:15999) at e.tick (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12530) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12117) at e.stepSimulation (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9775) at e.runAnimationLoop (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9128) Sim errors (build):
circuit-construction-kit-black-box-study Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:986:13660) at e.runAnimationLoop (http://localhost/circuit-construction-kit-black-box-study/build/circuit-construction-kit-black-box-study_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:986:13013) circuit-construction-kit-dc Uncaught TypeError: .foldl is not a function TypeError: .foldl is not a function at e.updateRunningAverage (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:3254) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:4645) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:958:15933) at e.step (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:959:4547) at e.stepSimulation (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:8318) at e.runAnimationLoop (http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7671) at http://localhost/circuit-construction-kit-dc/build/circuit-construction-kit-dc_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:985:7000 energy-forms-and-changes Uncaught RangeError: Maximum call stack size exceeded RangeError: Maximum call stack size exceeded at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4746) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) at e.isStackedUpon (http://localhost/energy-forms-and-changes/build/energy-forms-and-changes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1730:4842) gravity-and-orbits Uncaught TypeError: .any is not a function TypeError: .any is not a function at http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:979:18608 at new o (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:970:22683) at f.anyPropertyDifferent (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:979:18580) at new e (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:981:14353) at new e (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:981:17765) at e.init (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:981:22997) at e [as constructor] (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:984:3898) at new e (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:984:5101) at e.createModel (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:984:9520) at e.initializeModel (http://localhost/gravity-and-orbits/build/gravity-and-orbits_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:984:7200) molecule-shapes Uncaught TypeError: .unique is not a function TypeError: .unique is not a function at Function.realPermutations (http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1121:18106) at new e (http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1134:20680) at new e (http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1134:29109) at e.createModel (http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1135:28375) at e.initializeModel (http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1117:16159) at Array. (http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1138:13448) at http://localhost/molecule-shapes/build/molecule-shapes_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1138:13553 molecule-shapes-basics Uncaught TypeError: .unique is not a function TypeError: .unique is not a function at Function.realPermutations (http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1125:22432) at new e (http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1138:20680) at new e (http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1138:29109) at e.createModel (http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1139:28375) at e.initializeModel (http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1121:16206) at Array. (http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1142:13448) at http://localhost/molecule-shapes-basics/build/molecule-shapes-basics_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1142:13553 neuron Uncaught TypeError: .any is not a function TypeError: .any is not a function at e.stepInTime (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:17836) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:25055) at e.stepMode (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26217) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:862:26173) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:864:15999) at e.tick (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12530) at e.step (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:882:12117) at e.stepSimulation (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9775) at e.runAnimationLoop (http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:9128) at http://localhost/neuron/build/neuron_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:885:8457 reactants-products-and-leftovers Uncaught TypeError: Cannot read property 'height' of undefined TypeError: Cannot read property 'height' of undefined at new e (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:999:12062) at new e (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1007:20863) at http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1008:3285 at http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1007:25281 at e.link (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:983:25379) at e [as constructor] (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1007:25213) at new e (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1008:3217) at e.createView (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1009:22674) at e.initializeView (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1007:6819) at Array. (http://localhost/reactants-products-and-leftovers/build/reactants-products-and-leftovers_en.html?ea&audioVolume=0&testDuration=10000&testConcurrentBuilds=4&fuzzMouse&brand=phet&postMessageOnLoad&postMessageOnError:1012:2128) Grunt errors:
gene-expression-essentials Running "eslint:allFiles" (eslint) task
/Users/samreid/github/gene-expression-essentials/js/common/model/attachmentstatemachines/AttachedToBasePair.js 132:101 error Unnecessary semicolon no-extra-semi
✖ 1 problem (1 error, 0 warnings)
Warning: Task "eslint:allFiles" failed. Use --force to continue.
Aborted due to warnings.
4.0.0 removed these aliases:
https://github.com/lodash/lodash/wiki/Roadmap
.all, .any, .backflow, .callback, .collect, .compose, .contains, .detect, .foldl, .foldr, .include, .inject, .methods, .object, #run, .select, & _.unique
lodash doc indicates that some functions have been renamed. Eg contains -> includes. Rather than continuing to use the old functions, we should probably upgrade. As of this writing, lodash latest is 3.10.1, PhET is using 2.4.1.
Various useful links: