Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore compatibility with data-* attributes in jQuery 2.x #5486

Merged
merged 3 commits into from Apr 28, 2019

Commits on Apr 24, 2019

  1. Start running tests against jQuery 2.x

    We were only running tests against jQuery 1.x before and they were
    all passing. This was a problem because apparently all of the data-*
    attribute tests fail in jQuery 2.x.  We are now running both the
    integration and unit tests against both jQuery 1.x and jQuery 2.x.
    
    Right now this resulted in a complete duplication of the test files
    because there wasn't an obvious way to run the tests against both
    versions. We're going to look into removing this duplication in the
    future once the current issues are fixed.
    
    We are also going to look into testing against jQuery 3.x in the
    future, since that is also a supported line of jQuery.
    kevin-brown committed Apr 24, 2019
    Copy the full SHA
    8f965ae View commit details
    Browse the repository at this point in the history
  2. Force the data-* attributes to be parsed

    There was a change made that switched us from using `$.data` and
    `$.fn.data` internally to using an internal data store (managed
    through internal utilities). This had the unfortunate side effect
    of breaking the automatic loading of data-* options in versions of
    jQuery other than 1.x, which included anything that would be
    considered modern jQuery. While the change was made and approved
    in good faith, all of the tests passed and the docs pages appeared
    to be working, the tests really failed when running on newer versions
    of jQuery. This was confirmed when we started running automated tests
    against both versions, which confirmed the bug that others have been
    seeing for a while.
    
    The change was made becuase calling `$.fn.data` on an element which
    contains a reference to itself in the internal jQuery data cache
    would cause a stack overflow. This bug was well documented at the
    following GitHub ticket and was resolved by no longer using
    `$.fn.data`: #4014
    
    Unfortunately because `$.fn.data` was no longer being called in a
    way such that all of the data attributes would be dumped out, we
    needed to find a replacement. The substitute that was given in the
    original bug fix worked when the data cache was fully primed, but
    we never primed it anywhere so it actually failed in the general
    case. That meant we needed to find a way to manually prime it,
    which is exactly what this change does.
    kevin-brown committed Apr 24, 2019
    Copy the full SHA
    6c275e5 View commit details
    Browse the repository at this point in the history
  3. Clean up select2/utils

    kevin-brown committed Apr 24, 2019
    Copy the full SHA
    8a8c41f View commit details
    Browse the repository at this point in the history