All Versions
10
Latest Version
Avg Release Cycle
40 days
Latest Release
2249 days ago

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() and ValueObject::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;
    • ๐Ÿšš * remove UnboundScript::kNoScriptId const and return null in getId() on no data
    • * change ScriptCompiler::cachedDataVersionTag(): int method name and return type to be ScriptCompiler::getCachedDataVersionTag(): float;
    • ๐Ÿšš * remove StartupData::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 in Template::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 under RegExpObject, #64;
    • ๐Ÿšš Move CompileOptions constants under ScriptCompiler, #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 to V8\ObjectValue as the only possible type;
    • โž• Add external exception wiring option to V8\Isolate::ThrowException().
  • 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 all V8\Primitive values;
    • ๐Ÿ›  Fix segfault when zero args passed to V8\FunctionObject::NewInstance();
  • 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:

    • * Make V8\Isolate::ThrowException() method void;
    • ๐Ÿšš * Remove non-documented V8Isolate::ContextDisposedNotification();
    • * Make V8\Value, V8\PrimitiveValue and V8\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 and V8\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;
    • ๐Ÿ‘ * Add V8\ConstructorBehavior and support for it in V8\FunctionTemplate constructor;
    • ๐Ÿ‘ * Add signature support in V8\FunctionTemplate constructor via $receiver;
    • ๐Ÿ‘ * Add signature support to Template:SetNativeDataProperty() and ObjectTemplate::SetAccessor() via $receiver;
    • ๐Ÿšš * Remove require $isolate parameter from V8\Value::TypeOf();
    • ๐Ÿšš * Remove deprecated V8\Context::EstimatedSize() method;
    • ๐Ÿšš * Remove deprecated V8\StackTrace\StackTraceOptions;
    • ๐Ÿšš * Remove deprecated V8\StackTrace::AsArray();
    • * Require Context explicitly in V8\Isolate::ThrowException();
    • ๐Ÿ‘ป * Rename V8\Exceptions\GenericException to V8\Exceptions\Exception;
    • * Rename V8\Exceptions\AbstractResourceLimitException to V8\Exceptions\ResourceLimitException;
    • * Check whether returned context is empty in V8\Isolate\GetEnteredContext() instead of checking InContext();
  • 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:

    • * Replace V8\Isolate::GetCurrentContext with V8\Isolate::GetEnteredContext();
    • ๐Ÿšš * Remove V8\ObjectValue::CreationContext(), use V8\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, though ReturnValue::{Get,Set} could be accessed only within calling context as before;
    • ๐Ÿ›  Fix potential problems with V8\FunctionCallbackInfo and V8\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 from V8\Context. They were never exposed to end-user anyway.