sync.profile: Point dependencies to 'refs/heads/dev'

We should test dev branches against dev branches only by default.
At some point we should automate the merges from release->stable->dev
and/or decide how to handle possible conflicts.

This is good enough for the time being.

Change-Id: Iab9c223601f38e55067621d1da20533c8a63ee93
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Merge remote-tracking branch 'origin/stable' into dev

Conflicts:
	sync.profile

Change-Id: I69172f14e208c5f609be0754a4c2cee46f350342
Updated V8 from git://github.com/v8/v8.git to 2215c442af2f0a4fce076e35ea061486d62778a1

Update V8 source to version 3.15.2

    * Performance and stability improvements on all platforms.
    * Avoid overdeep recursion in regexp where a guarded expression with a
      minimum repetition count is inside another quantifier.
    * Exposed last seen heap object id via v8 public api.
    * Implemented heap profiler memory usage reporting.
    * Preserved error message during finally block in try..finally.
    * Improved heuristics to keep objects in fast mode with inherited
      constructors.
    * Fixed lazy sweeping heuristics to prevent old-space expansion.
    * Fixed sharing of literal boilerplates for optimized code.
    * Expose more detailed memory statistics.
    * Cleaned up hardfp ABI detection for ARM (V8 issue 2140).
    * Report "hidden properties" in heap profiler for properties case.
    * Added optimizing compiler support for JavaScript getters.
    * Fixed computation of call targets on prototypes in Crankshaft.
    * Fixed ICs for slow objects with native accessor.
    * Fixed transcendental cache on ARM in optimized code (issue 2234).
    * New heap inspection tools: counters for object sizes and counts,
      histograms for external fragmentation.
    * Added more support for heap analysis.
    * Interpret negative hexadecimal literals as NaN. (issue 2240)
    * Improved API calls that return empty handles.
    * Added checks for interceptors to negative lookup code in Crankshaft.
    * Introduced global contexts to represent lexical global scope(s).
    * Allocate block-scoped global bindings to global context.
    * Add empty-handle checks to API functions (#ifdef ENABLE_EXTRA_CHECKS)
    * Check the return value of API calls on ia32 and x64.
    * Activated fixed ES5 readonly semantics by default.
    * Added validity checking to API functions and calls.
    * Switched on code compaction on incremental GCs.
    * ARM: allowed VFP3 instructions when hardfloat is enabled. (Chromium issue 152506)
    * Killed off the SCons based build. (relevant for testing)
    * Added a faster API for creating v8::Integer objects.
    * Speeded up function deoptimization by avoiding quadratic pass over optimized function list. (Chromium issue 155270)
    * ES6: Added support for size to Set and Map (issue 2395)
    * ES6: Added support for Set and Map clear method (issue 2400)
    * Made formatting error message side-effect-free.  (issue 2398)
    * Fixed V8 issues: 915, 1374, 1465, 1569, 1591, 1609 1645, 1804, 1914, 1981, 1991, 2016, 2017,
      2034, 2077, 2087, 2094, 2119, 2120, 2133, 2134, 2139, 2143, 2151, 2156, 2166, 2170, 2172,
      2177, 2179, 2185, 2193, 2194, 2201, 2210, 2212, 2219, 2220, 2225, 2239, 2245, 2252, 2260,
      2261, 2294, 2297, 2308, 2312, 2313, 2317, 2318, 2322, 2326, 2364, 2372, 2380

Change-Id: Ifa82ec37b6150fdf1c4364c93987a32bbbf6bfd1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Add hashing and comparison methods to v8::String

This allows us to more rapidly search for a v8::String inside a hash
of QStrings.

Change-Id: I8f7d7499b02103f346ef02a1e2c70033a0619fbe
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Add a "fallback" mode for named property interceptors

By default interceptors are called before the normal property
resolution on objects.  When an interceptor is installed as a
"fallback" interceptor, it is only called if the object doesn't
already have the property.

In the case of a global object having an fallback interceptor,
the interceptor is not invoked at all for var or function
declarations.

Change-Id: Iac09d4243b0407a7b3e9ba9149f8d447b7af7766
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Generalize external object resources

V8 was already able to manage and finalize an external string
resource.  This change generalizes that mechanism to handle a
single generic external resource - a v8::Object::ExternalResource
derived instance - on normal JSObject's.

This is useful for mapping C++ objects to JS objects where the
C++ object's memory is effectively owned by the JS Object, and
thus needs to destroyed when the JS Object is garbage collected.
The V8 mailing list suggests using a weak persistent handle for
this purpose, but that seems to incur a fairly massive performance
penalty for short lived objects as weak persistent handle callbacks
are not called until the object has been promoted into the old
object space.

Change-Id: Idd4474634d21bf4e021f1ccfb0d6a855ee80bed8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Introduce a QML compilation mode

In QML mode, there is a second global object - known as the QML
global object.  During property resolution, if a property is not
present on the JS global object, it is resolved on the QML global
object.

This global object behavior is only enabled if a script is being
compiled in QML mode.  The object to use as the QML global object
is passed as a parameter to the Script::Run() method.  Any function
closures etc. created during the run will retain a reference to this
object, so different objects can be passed in different script
runs.

Change-Id: I75d6f8173260e0d4933fd33ad16a277542048f09
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Allow access to the calling script data

Change-Id: I1fcb08b1d92a3c9ab65fac7a6621588c2bf1c248
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Add custom object compare callback

A global custom object comparison callback can be set with:
    V8::SetUserObjectComparisonCallbackFunction()
When two JSObjects are compared (== or !=), if either one has
the MarkAsUseUserObjectComparison() bit set, the custom comparison
callback is invoked to do the actual comparison.

This is useful when you have "value" objects that you want to
compare as equal, even though they are actually different JS object
instances.

Change-Id: I5c031b4d90c8a77f4c4ffa38270976397322db76
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Allow a script to be flagged as "native"

Native scripts do not appear in backtraces, or in the source and
line number when exceptions are thrown from within them.  This is
useful to be able to write code in JavaScript instead of C++ and
still have it appear sensibly to the user.

Change-Id: I20d03178c03d994c090a4a9fdebabf4fe824a6fa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] QtScript/V8: Add new v8 api to check if a value is an error.

New function v8::Value::IsError was created.

This API is experimental and added only for the purposes of our
research.

Change-Id: Ie9c75681f956a43944c95737b8a2fb57a699df97
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Remove execute flag from v8-debug.h

Change-Id: I4dcaec52357b3db3dd40f651848768ef41b7ebfa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Fix warnings

Change-Id: I1a910d5518964ceb9c2f41b56ede56027d8edc2e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Add flag to avoid breakpoint relocation

Add a flag that prevents v8 from relocating breakpoints across
line boundaries.

Change-Id: I4e6b260923f9115dc506834478f4d78cf34bae19
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Add support for QNX platform

This submission is based on code originally contributed by Jeff Rogers <jrogers@rim.com> with permission from Research in
Motion.

We have tried to make this change as unobtrusive as possible. For example in the atomic_ops.h header we have added a
conditional include for a qnx-specific atomicops_internals_arm_qnx.h as the existing atomicops_internals_arm_gcc.h is
actually Linux-specific despite the name of the file. In the longer term it would make sense to use an asm implementation
that is only dependent upon the CPU rather than OS-specific system calls. See qtbase/src/corelib/arch/qatomic_armv*.h
for a good reference.

Here we decided not to risk breaking existing platforms for the initial introduction of this new platform.

The QNX platform integration is built on top of the posix base.

Change-Id: Ie2a591bf1876915ca062034b22124ab27ff6d127
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Fix compilation with Intel CC.

Issue reported upstream at:
http://code.google.com/p/v8/issues/detail?id=1885
http://code.google.com/p/v8/issues/detail?id=689

Change-Id: If651c5f68dc9d425f4fb086e57205d79f4b68878
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Disable randomize hashes in V8

Should be disabled for now due to regressions in QtDeclarative auto
tests.

Change-Id: I8cf96e6f7eba6410e57a186e11a1c4432798ac72
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Update QNX platform port so that it builds once again

Change-Id: I27bf62fba0219903d6c9aebd287de7091e4237f9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Implement new parts of platform port for QNX

Change-Id: Id2323606334bd47da8532cd9a800626ec259e314
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
[V8] Implement OS::SetUp() and OS::TearDown() for QNX

This is needed to not have unresolved symbols following a V8 version
bump.

Change-Id: I6f98573c08cdb803f691678d3986a2ed87038cdb
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>