Skip to content

Calling Intl.v8BreakIterator w/o ICU data in VM context makes the process crash #14909

Closed
@TimothyGu

Description

@TimothyGu

#3111 / #4253 fixed this in the main context, but the bug applies to VM contexts too unfortunately.

$ node -p "vm.runInNewContext('new Intl.v8BreakIterator()')"


#
# Fatal error in , line 0
# Failed to create ICU break iterator, are ICU data files missing?
#

==== C stack trace ===============================

    node(v8::base::debug::StackTrace::StackTrace()+0x16) [0x15c8c36]
    node() [0x1451857]
    node(V8_Fatal+0xd8) [0x15c3998]
    node() [0x1116487]
    node(v8::internal::Runtime_CreateBreakIterator(int, v8::internal::Object**, v8::internal::Isolate*)+0x170) [0x1200a40]
    [0x1ec0a1974998]
Illegal instruction

Offending line:

FATAL("Failed to create ICU break iterator, are ICU data files missing?");

At this point I'm thinking of just including the data files needed for the break iterator to work even if it's not part of the ECMA-402 spec yet.

/cc @nodejs/intl @srl295

Metadata

Metadata

Assignees

No one assigned

    Labels

    i18n-apiIssues and PRs related to the i18n implementation.v8 engineIssues and PRs related to the V8 dependency.vmIssues and PRs related to the vm subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions