@@ -553,24 +553,38 @@ public Object encodingMap(VirtualFrame frame) {
553
553
lookupTableWriteNode .call (frame , ret , "[]=" , null , key , value );
554
554
}
555
555
556
+ final Encoding defaultInternalEncoding = getContext ().getRuntime ().getDefaultInternalEncoding ();
557
+ final Object internalTuple = newTupleNode .call (
558
+ frame ,
559
+ getContext ().getCoreLibrary ().getTupleClass (),
560
+ "create" ,
561
+ null ,
562
+ getContext ().makeString ("internal" ),
563
+ defaultInternalEncoding == null ? nil () : defaultInternalEncoding .getIndex ()
564
+ );
565
+
566
+ lookupTableWriteNode .call (frame , ret , "[]=" , null , getContext ().newSymbol ("INTERNAL" ), internalTuple );
567
+
568
+ final Encoding defaultExternalEncoding = getContext ().getRuntime ().getDefaultExternalEncoding ();
556
569
final Object externalTuple = newTupleNode .call (
557
570
frame ,
558
571
getContext ().getCoreLibrary ().getTupleClass (),
559
572
"create" ,
560
573
null ,
561
574
getContext ().makeString ("external" ),
562
- getContext (). getRuntime (). getDefaultExternalEncoding () .getIndex ()
575
+ defaultExternalEncoding == null ? nil () : defaultExternalEncoding .getIndex ()
563
576
);
564
577
565
578
lookupTableWriteNode .call (frame , ret , "[]=" , null , getContext ().newSymbol ("EXTERNAL" ), externalTuple );
566
579
580
+ final Encoding localeEncoding = getContext ().getRuntime ().getEncodingService ().getLocaleEncoding ();
567
581
final Object localeTuple = newTupleNode .call (
568
582
frame ,
569
583
getContext ().getCoreLibrary ().getTupleClass (),
570
584
"create" ,
571
585
null ,
572
586
getContext ().makeString ("locale" ),
573
- getContext (). getRuntime (). getEncodingService (). getLocaleEncoding () .getIndex ()
587
+ localeEncoding == null ? nil () : localeEncoding .getIndex ()
574
588
);
575
589
576
590
lookupTableWriteNode .call (frame , ret , "[]=" , null , getContext ().newSymbol ("LOCALE" ), localeTuple );
0 commit comments