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

Introduce compatibility with V8 7.3 #138

Merged
merged 9 commits into from Apr 24, 2019
Merged

Introduce compatibility with V8 7.3 #138

merged 9 commits into from Apr 24, 2019

Commits on Apr 23, 2019

  1. Mechanical removal of use of non-maybe String::ToObject()

    Due to the non-maybe version of String::ToObject() being deprecated and
    altogether removed from V8 [1] it is necessary to migrate to using the maybe
    version.
    
    This commit is a mechanical change that uses the context at hand when calling
    String::ToObject() to pass it to it.
    
    The resulting MaybeLocal is then unwrapped with MaybeLocal::ToLocalChecked() as
    I consider the verifications performed on the String instances to be sufficient
    to ensure no crashes.
    
    [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/
        https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f
    ignisf committed Apr 23, 2019
    Configuration menu
    Copy the full SHA
    f9bd8c4 View commit details
    Browse the repository at this point in the history
  2. Mechanical removal of use of non-maybe Local<T>::ToString()

    Due to the non-maybe version of Local<T>::ToString() being deprecated and
    altogether removed from V8 [1] it is necessary to migrate to using the maybe
    version.
    
    This commit is a mechanical change that uses the context at hand when calling
    Local<T>::ToString() to pass it to it.
    
    The resulting MaybeLocal is then unwrapped with MaybeLocal::ToLocalChecked() as
    I consider the context of the uses to be sufficiently safe.
    
    [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/
        https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f
    ignisf committed Apr 23, 2019
    Configuration menu
    Copy the full SHA
    f68aa1a View commit details
    Browse the repository at this point in the history
  3. Mechanical removal of the use of non-maybe Value::Int32Value() and Nu…

    …mberValue()
    
    Due to the non-maybe version of Value::Int32Value() and Value::NumberValue()
    being deprecated and altogether removed from V8 [1] it is necessary to migrate
    to using the maybe versions.
    
    This commit is a mechanical change that uses the context at hand when calling
    Value::Int32Value() or Value::NumberValue() to pass it to the respective
    function.
    
    The resulting Maybe is then unwrapped with Maybe::ToChecked() as I consider the
    verifications performed on the Value instances to be sufficient to ensure no
    crashes.
    
    [1] https://chromium-review.googlesource.com/c/v8/v8/+/1172350/
        https://chromium.googlesource.com/v8/v8/+/c8376b0069ebe16c67acf90c3cda3457ddccba4f
    ignisf committed Apr 23, 2019
    Configuration menu
    Copy the full SHA
    bf129b8 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2019

  1. Remove the uses of deprecated snapshot-related functions

    Due to V8::CreateSnapshotDataBlob() and V8::WarmUpSnapshotDataBlob() being
    deprecated and altogether removed from V8 [1] it is necessary to migrate to
    using local implementations of them.
    
    This commit introduces create_snapshot_data_blob(), warm_up_snapshot_data_blob()
    and the helper function run_extra_code(). Their implementations have been copied
    over from [2].
    
    [1] v8/v8@b3738e6
        https://chromium-review.googlesource.com/c/v8/v8/+/1019442/
    
    [2] https://github.com/v8/v8/blob/7.3.492.27/test/cctest/test-serialize.cc
        https://chromium.googlesource.com/v8/v8.git/+/30602560a8fdb0bbfb50d70be867f32b72758a2f/test/cctest/test-serialize.cc
    ignisf committed Apr 24, 2019
    Configuration menu
    Copy the full SHA
    161048b View commit details
    Browse the repository at this point in the history
  2. Non-trivial removal of uses of non-maybe Date::New()

    Due to the non-maybe version of Date::New() being deprecated and altogether
    removed from V8 [1] it is necessary to migrate to using the maybe version.
    
    This commit introduces a context argument to the convert_ruby_to_v8() function
    so it can be passed to the maybe version of Date::New().
    
    This imposed changes throughout the code base so that the context can be passed
    together with the isolate to convert_ruby_to_v8().
    
    [1] https://chromium-review.googlesource.com/c/v8/v8/+/1357056
        v8/v8@e84b92d
    ignisf committed Apr 24, 2019
    Configuration menu
    Copy the full SHA
    c17b1a1 View commit details
    Browse the repository at this point in the history
  3. Non-trivial removal of use of non-maybe Local<T>::ToString()

    This commit builds upon fe62f7935582bd889742ec77ee2289a8f6cb16e6. The use of
    Local<T>::ToString() in convert_result_to_ruby() did not have an immediately
    available context to use. This commit unwraps the context from p_ctx and passes
    it to the function and then unwraps the MaybeLocal result with
    MaybeLocal::ToLocalChecked() assuming the verification beforehand is sufficient
    to ensure there won't be any crashes.
    ignisf committed Apr 24, 2019
    Configuration menu
    Copy the full SHA
    1e2dfd3 View commit details
    Browse the repository at this point in the history
  4. Mechanical removal of use of String::Utf8Length() without isolate

    Due to the version of String::Utf8Length() with no paramters being deprecated
    and altogether removed from V8 [1] it is necessary to migrate to using the
    version that accepts isolate as a parameter.
    
    This commit is a mechanical change that uses the isolate available in the
    context where String::Utf8Length() is called.
    
    This is a breaking change imposing use of V8 6.9.411 or up.
    
    [1] https://chromium-review.googlesource.com/c/v8/v8/+/1124724/
        https://chromium.googlesource.com/v8/v8/+/3dd5c6fe38355b8323597341409b37f931de5a85
    ignisf committed Apr 24, 2019
    Configuration menu
    Copy the full SHA
    da52f45 View commit details
    Browse the repository at this point in the history
  5. Update the changelog

    ignisf committed Apr 24, 2019
    Configuration menu
    Copy the full SHA
    13e36b0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    9d346d9 View commit details
    Browse the repository at this point in the history