1. 09 Mar, 2020 1 commit
    • Dan Elphick's avatar
      [api] Create v8::String::NewFromLiteral that returns Local<String> · b097a8e5
      Dan Elphick authored
      String::NewFromLiteral is a templated function that takes a char[N]
      argument that can be used as an alternative to String::NewFromUtf8 and
      returns a Local<String> rather than a MaybeLocal<String> reducing the
      number of ToLocalChecked() or other checks.
      
      Since the string length is known at compile time, it can statically
      assert that the length is less than String::kMaxLength, which means that
      it can never fail at runtime.
      
      This also converts all found uses of NewFromUtf8 taking a string literal
      or a variable initialized from a string literal to use the new API. In
      some cases the types of stored string literals are changed from const
      char* to const char[] to ensure the size is retained.
      
      This API does introduce a small difference compared to NewFromUtf8. For
      a case like "abc\0def", NewFromUtf8 (using length -1 to infer length)
      would treat this as a 3 character string, whereas the new API will treat
      it as a 7 character string.
      
      As a drive-by fix, this also fixes all redundant uses of
      v8::NewStringType::kNormal when passed to any of the String::New*
      functions.
      
      Change-Id: Id96a44bc068d9c4eaa634aea688e024675a0e5b3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089935
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarMathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66622}
      b097a8e5
  2. 08 Aug, 2019 1 commit
    • Simon Zünd's avatar
      Calls to {console} require an access check for the provided arguments · a5fd60e1
      Simon Zünd authored
      This CL adds an access check for the arguments to all calls to
      {console} like {console.log}. This is needed since the DevTools
      protocol notificiation event does not contain the context in which
      the {console.log} call occurred. Only the context of the argument.
      When DevTools then reads properties for the preview of the argument,
      it uses arguments context, instead of the calling context, potentially
      leaking objects/exceptions into the calling context.
      
      Bug: chromium:987502, chromium:986393
      Change-Id: I6f7682f7bee94a28ac61994bad259bd003511c39
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1741664
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63122}
      a5fd60e1
  3. 02 Aug, 2019 1 commit
    • Simon Zünd's avatar
      Add regression tests that check the native context of accessors · f51e0368
      Simon Zünd authored
      This CL adds regression tests for two bugs where the wrong native
      context is used when lazy accessors are instantiated.
      
      The first bug injects an object created in context 1, into another
      context 2. The object has an accessor pair installed via
      FunctionTemplate. In context 2, the property descriptor of this
      accessor is retrieved, causing the JSFunction to be instantiated
      with the current context (context 2) instead of the creation
      context of the object (context 1).
      
      The second bug is similar. When breakpoints are set, the whole heap
      is walked and all lazy accessor pairs are instantiated. This again
      uses the current context instead of using the context from which
      a AccessorPair originates.
      
      Bug: chromium:986063, chromium:989909
      Change-Id: Iaaea6e81f1b9f6b55fc7583b260aa9aea035a8d3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1730999Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63048}
      f51e0368
  4. 04 Dec, 2017 1 commit
  5. 20 Feb, 2017 1 commit