Changelog History
-
v0.2.2 Changes
February 27, 2018๐ I'm excited to announce that starting from this release documentation is available at https://php-v8.readthedocs.io.
๐ Read The Docs is awesome place to host documentation and Sphinx would help to create decent documentation. Contributors welcomed!
๐ This is the last version that supports PHP 7.1. For all next versions PHP >= 7.2 required.
BC-breaking changes:
- โฌ๏ธ Upgrade v8 version to 6.6.313
- โ Remove deprecated and non-working
ScriptCompiler
cache options - Rework
PromiseObject
- โ Add
ValueObject::isBigInt64Array()
andValueObject::isBigUint64Array
methods
Non-breaking changes:
- โ Add number of native and detached contexts to
HeapStatistics
- โ Add support to produce code cache
- Add ScriptCompiler::OPTION_EAGER_COMPILE option
- โ Add support for integer->strings for
ObjectValue::GetOwnPropertyNames
and `ObjectValue::GetPropertyNames - โ Add {Template,ObjectValue}:setLazyDataProperty() method
-
v0.2.1 Changes
October 23, 2017๐ This release brings stability and improvements. It contains some minor BC-breaking changes which should not affect general public. See full change log below for details
๐ Changelog:
*
- BC-breaking changes*
require libv8 >= 6.4.6;- ๐
*
removeUnboundScript::kNoScriptId
const and returnnull
ingetId()
on no data *
changeScriptCompiler::cachedDataVersionTag(): int
method name and return type to beScriptCompiler::getCachedDataVersionTag(): float
;- ๐
*
removeStartupData::getRawSize()
method; - ๐ fix segfault when invalid startup data passed to isolate;
- ๐ fix external exception lost when it has refcount 1;
- ๐ change script compiler version tag generation to take into account changes to extension internals;
- โ add
CallbackInfoInterface
; - โ add support for ScriptCompiler::kProduceFullCodeCache;
- โ add
{Isolate,Context}::within()
as optimization solution; - โ add
StartupData::isRejected()
; - โ add docs skeleton.
-
v0.2.0 Changes
October 06, 2017๐ This release introduces many major changes to public API and breaks BC for the sake of more solid and stable API in a further versions.
PLEASE READ:
Maintaining this project takes significant amount of time and efforts.
๐ If you like my work and want to show your appreciation, please consider supporting me at https://www.patreon.com/pinepain.๐ Changes:
- โฌ๏ธ Drop PHP 7.0 support, #30;
- โ Add typehint for
$value
param inTemplate::set()
, #36; - ๐ Rename constants to match PSR-2 convention, #34;
- ๐ Make enum classes with constants
final
, #39 ; - ๐ Rename
HeapStatistics
methods to match PSR-2, #38; - ๐ป Rename
V8\Exception
class and it methods, #33; - โ Add
FunctionObject::getScriptId()
method; - โ Remove no-data constants and use
NULL
instead, #40; - ๐จ Refactor
ScriptOriginOptions
to use bit field, #42; - โ Remove redundant
ScriptOrigin::is*()
methods, #61; - โ Add missed method to
Value
stub; - ๐ Fix improperly adjusted external allocated memory on weak callback call;
- โ Add Proxy and Promise builtin support, #55;
- โ Add support for regexp
dotAll
flag, #54; - ๐ Move
RegExpObject\Flags
constants underRegExpObject
, #64; - ๐ Move
CompileOptions
constants underScriptCompiler
, #65; - โ Add
Isolate::MemoryPressureNotification()
support, #57; - Require libv8 >= 6.3.163;
- โ Add
StackFrame::isWasm()
, #53; - Get rid of
CallbackInfo
, #67; - โ Add immutable prototype chains to
ObjectTemplate
, #58; - โ Add
StartupData::warmUpSnapshotDataBlob()
, #59; - โ Add missed
JSON
class support, #56; - โ Add
Message::getErrorLevel()
method, #52; - ๐ Rename
SymbolValue
methods, #41; - ๐ Rename
TryCatch
methods, #41; - โ Add missed
PrimitiveValue::value()
abstract method; - โ Add
Isolate::SetRAILMode()
, #60; - ๐ Fix improperly internally constructed RAILMode enum class, #60.
๐ See #43 (comment) for details
-
v0.1.9 Changes
September 01, 2017๐ This is the last release that supports PHP 7.0.
๐ Changes:
- ๐จ refactor method names to follow PSR-2 camelCase convention;
-
v0.1.8 Changes
July 17, 2017๐ This release extends and clarify existent API and does not introduce any BC-breaking changes.
๐ Changes list:
- ๐ Change
V8\Exception::*Error()
return type toV8\ObjectValue
as the only possible type; - โ Add external exception wiring option to
V8\Isolate::ThrowException()
.
- ๐ Change
-
v0.1.7 Changes
July 17, 2017๐ Changes to public API and other important changes which may affect end-user:
- ๐ Fix segfaults on unclean shutdown
- Require v8 >= 6.1.170
-
v0.1.6 Changes
May 03, 2017๐ Changes to public API and other important changes which may affect end-user:
- Enforce
Value()
method on allV8\Primitive
values; - ๐ Fix segfault when zero args passed to
V8\FunctionObject::NewInstance()
;
- Enforce
-
v0.1.5 Changes
April 30, 2017๐ This release introduces separate representation for
undefined
value and fixes some bugs. Please, see change list below for more details.*
- BC-breaking or potentially BC-breaking changes๐ Changes to public API and other important changes which may affect end-user:
*
MakeV8\Isolate::ThrowException()
method void;- ๐
*
Remove non-documented V8Isolate::ContextDisposedNotification(); *
MakeV8\Value
,V8\PrimitiveValue
andV8\NameValue
abstract;V8\Isolate
time limit affects js runtime only;- Introduce separate class for
undefined
value -V8UndefenedValue
; - ๐ Fix V8\Tempalte::Set() to do not accept non-primitive values;
- โ Remove all private properties from
V8\Isolate
;
-
v0.1.4 Changes
April 22, 2017๐ This release adds low-level optimizations, simplify some internal methods and fix few bugs. For more details see change list below.
๐ As of this release, V8 >= 6.0.45 required.
*
- BC-breaking or potentially BC-breaking changes๐ Changes to public API and other important changes which may affect end-user:
- Raise libv8 required version to 6.0.45;
- โ Add
V8\Value::InstanceOf()
method; - โ Add
V8\ObjectValue::SetNativeDataProperty()
method; - โ Add
V8\PropertyFilter
,V8\KeyCollectionMode
andV8\IndexFilter
enums; - โ Add property filtering support to
V8\ObjectValue::Get{Property,OwnProperty}Names()
; - Consistently expose all well-known symbols on
V8\SymbolValue
; - Setting boolean props on
StackFrame
with valid type; - โ Remove non-working and non-supporting $attributes argument from
V8\StringValue
constructor in stubs; - ๐
*
AddV8\ConstructorBehavior
and support for it inV8\FunctionTemplate
constructor; - ๐
*
Add signature support inV8\FunctionTemplate
constructor via $receiver; - ๐
*
Add signature support toTemplate:SetNativeDataProperty()
andObjectTemplate::SetAccessor()
via$receiver
; - ๐
*
Remove require$isolate
parameter fromV8\Value::TypeOf()
; - ๐
*
Remove deprecated V8\Context::EstimatedSize() method; - ๐
*
Remove deprecatedV8\StackTrace\StackTraceOptions
; - ๐
*
Remove deprecatedV8\StackTrace::AsArray()
; *
Require Context explicitly inV8\Isolate::ThrowException()
;- ๐ป
*
RenameV8\Exceptions\GenericException
toV8\Exceptions\Exception
; *
RenameV8\Exceptions\AbstractResourceLimitException
toV8\Exceptions\ResourceLimitException
;*
Check whether returned context is empty inV8\Isolate\GetEnteredContext()
instead of checkingInContext()
;
-
v0.1.3 Changes
March 05, 2017๐ This release adds low-level optimizations, simplify some internal methods and fix few bugs. For more details see change list below.
๐ As of this release, V8 >= 5.9.5 required.
*
- BC-breaking or potentially BC-breaking changes๐ Changes to public API and other important changes which may affect end-user:
*
ReplaceV8\Isolate::GetCurrentContext
withV8\Isolate::GetEnteredContext()
;- ๐
*
RemoveV8\ObjectValue::CreationContext()
, useV8\ObjectValue::GetContext()
; - โ Add
V8\PropertyCallbackInfo::ShouldThrowOnError()
method; - โ Add
V8\FunctionCallbackInfo::NewTarget()
method; V8\ReturnValue
now explicitly holds isolate and context which could be accessed outside of calling context, thoughReturnValue::{Get,Set}
could be accessed only within calling context as before;- ๐ Fix potential problems with
V8\FunctionCallbackInfo
andV8\PropertyCallbackInfo
, now they are fully build, properly stores owning isolate and context and could be safely used outside calling scope; - ๐ Fix leak when
V8\ScriptCompiler::CompileFunctionInContext()
invoked with arguments or arguments and context extensions; - ๐ Fix segfault under when abruptly exiting (
die()
,exit()
, uncaught exception) from isolate which entered multiple time or from multiple nested isolates (quite rare use case). - โ Add
V8\Exceptions\ValueException
to stubs. It support was in extension for ages but for some reason it was missed from stubs. - Remove
$global_template
and$global_object
private props fromV8\Context
. They were never exposed to end-user anyway.