| 2020-04-12 Ross Kirsling <ross.kirsling@sony.com> |
| |
| [ECMA-402] WebKit Intl does not allow calendar and numberingSystem options |
| https://bugs.webkit.org/show_bug.cgi?id=209784 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| As an alternative to using `ca` and `nu` extensions in the locale string: |
| - the Intl.DateTimeFormat constructor needs to be able to take `calendar` and `numberingSystem` options |
| https://tc39.es/ecma402/#sec-initializedatetimeformat |
| - the Intl.NumberFormat needs to be able to take a `numberingSystem` option |
| https://tc39.es/ecma402/#sec-initializenumberformat |
| |
| Since we already support `ca` and `nu`, this is a very simple addition. |
| The only interesting part is that we must verify that values for these options are 3-8 alphanumeric characters. |
| |
| * runtime/IntlDateTimeFormat.cpp: |
| (JSC::IntlDateTimeFormat::initializeDateTimeFormat): |
| * runtime/IntlNumberFormat.cpp: |
| (JSC::IntlNumberFormat::initializeNumberFormat): |
| (JSC::IntlNumberFormat::resolvedOptions): |
| * runtime/IntlObject.cpp: |
| (JSC::isUnicodeLocaleIdentifierType): |
| * runtime/IntlObject.h: |
| |
| 2020-04-10 Ross Kirsling <ross.kirsling@sony.com> |
| |
| [ECMA-402] Properly implement BigInt.prototype.toLocaleString |
| https://bugs.webkit.org/show_bug.cgi?id=209782 |
| |
| Reviewed by Darin Adler. |
| |
| Our BigInt's toLocaleString has been simply falling back to toString instead of following ECMA-402. |
| (https://tc39.es/ecma402/#sup-bigint.prototype.tolocalestring) |
| |
| Since {Number, BigInt}.prototype.toLocaleString are internally the same as Intl.NumberFormat.prototype.format, |
| this patch simultaneously lets the latter method take a BigInt argument. |
| (https://tc39.es/ecma402/#sec-number-format-functions) |
| |
| This patch continues to use the old unum_* API instead of ICU 62's new unumf_* API, |
| as the latter would require a large refactor as well as fallback paths. |
| (This will, however, be a prerequisite for https://bugs.webkit.org/show_bug.cgi?id=209774.) |
| |
| * runtime/BigIntPrototype.cpp: |
| (JSC::bigIntProtoFuncToString): |
| (JSC::bigIntProtoFuncToLocaleString): |
| (JSC::bigIntProtoFuncToStringImpl): Deleted. |
| * runtime/IntlNumberFormat.cpp: |
| (JSC::IntlNumberFormat::format): |
| (JSC::IntlNumberFormat::formatNumber): Deleted. |
| * runtime/IntlNumberFormat.h: |
| * runtime/IntlNumberFormatPrototype.cpp: |
| (JSC::IntlNumberFormatFuncFormat): |
| (JSC::IntlNumberFormatPrototypeGetterFormat): |
| (JSC::IntlNumberFormatFuncFormatNumber): Deleted. |
| * runtime/NumberPrototype.cpp: |
| (JSC::numberProtoFuncToLocaleString): |
| |
| 2020-04-10 Devin Rousso <drousso@apple.com> |
| |
| The rhs in `ReadModifyResolveNode` should be evaluated before throwing an exception if the lhs is read-only |
| https://bugs.webkit.org/show_bug.cgi?id=210317 |
| |
| Reviewed by Ross Kirsling. |
| |
| * bytecompiler/NodesCodegen.cpp: |
| (JSC::emitReadModifyAssignment): |
| (JSC::ReadModifyResolveNode::emitBytecode): |
| If the corresponding `Variable` is read-only, pass it to `emitReadModifyAssignment` as an |
| additional optionl argument, where it will be used to `emitReadOnlyExceptionIfNeeded` after |
| the rhs is emitted. |
| |
| 2020-04-10 Mark Lam <mark.lam@apple.com> |
| |
| Use more PAC diversity for JIT probe code. |
| https://bugs.webkit.org/show_bug.cgi?id=210252 |
| <rdar://problem/54490367> |
| |
| Reviewed by Keith Miller. |
| |
| Introducing new PtrTags: |
| JITProbePtrTag - for the client probe function. |
| JITProbeTrampolinePtrTag - for calling the ctiMasmProbeTrampoline. |
| JITProbeExecutorPtrTag - for calling the probe executor. |
| Currently, this is only the Probe::executeProbe(). |
| JITProbeStackInitializationFunctionPtrTag - for calling the optional stack |
| initialization function that the client probe function may set. |
| |
| We'll now use these in the JIT probe mechanism instead of adopting the default |
| CFunctionPtrTag. |
| |
| * assembler/MacroAssembler.cpp: |
| (JSC::MacroAssembler::probe): |
| * assembler/MacroAssemblerARM64.cpp: |
| (JSC::MacroAssembler::probe): |
| * assembler/MacroAssemblerPrinter.h: |
| (JSC::MacroAssembler::print): |
| * assembler/ProbeContext.h: |
| * runtime/JSCPtrTag.h: |
| * tools/JSDollarVM.cpp: |
| (JSC::callWithStackSizeProbeFunction): |
| * wasm/WasmAirIRGenerator.cpp: |
| (JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck): |
| * wasm/WasmB3IRGenerator.cpp: |
| (JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck): |
| |
| 2020-04-10 Mark Lam <mark.lam@apple.com> |
| |
| [Follow up] Fix bad tests in testmasm's testCagePreservesPACFailureBit(). |
| https://bugs.webkit.org/show_bug.cgi?id=210314 |
| <rdar://problem/61556785> |
| |
| Not reviewed. |
| |
| Applying Keith's feedback in https://bugs.webkit.org/show_bug.cgi?id=210314#c5: |
| added the stronger test but kept the weaker one as well. |
| |
| * assembler/testmasm.cpp: |
| (JSC::testCagePreservesPACFailureBit): |
| |
| == Rolled over to ChangeLog-2020-04-10 == |