src/jdk/nashorn/internal/objects/NativeString.java

Print this page




  61 import jdk.nashorn.internal.runtime.linker.NashornGuards;
  62 import jdk.nashorn.internal.runtime.linker.PrimitiveLookup;
  63 
  64 
  65 /**
  66  * ECMA 15.5 String Objects.
  67  */
  68 @ScriptClass("String")
  69 public final class NativeString extends ScriptObject {
  70 
  71     private final CharSequence value;
  72 
  73     // Method handle to create an object wrapper for a primitive string
  74     private static final MethodHandle WRAPFILTER = findOwnMH("wrapFilter", MH.type(NativeString.class, Object.class));
  75     // Method handle to retrieve the String prototype object
  76     private static final MethodHandle PROTOFILTER = findOwnMH("protoFilter", MH.type(Object.class, Object.class));
  77 
  78     // initialized by nasgen
  79     private static PropertyMap $nasgenmap$;
  80 
  81     static PropertyMap getInitialMap() {
  82         return $nasgenmap$;
  83     }
  84 
  85     private NativeString(final CharSequence value) {
  86         this(value, Global.instance());
  87     }
  88 
  89     NativeString(final CharSequence value, final Global global) {
  90         this(value, global.getStringPrototype(), getInitialMap());
  91     }
  92 
  93     private NativeString(final CharSequence value, final ScriptObject proto, final PropertyMap map) {
  94         super(proto, map);
  95         assert value instanceof String || value instanceof ConsString;
  96         this.value = value;
  97     }
  98 
  99     @Override
 100     public String safeToString() {
 101         return "[String " + toString() + "]";
 102     }
 103 
 104     @Override
 105     public String toString() {
 106         return getStringValue();
 107     }
 108 
 109     @Override
 110     public boolean equals(final Object other) {




  61 import jdk.nashorn.internal.runtime.linker.NashornGuards;
  62 import jdk.nashorn.internal.runtime.linker.PrimitiveLookup;
  63 
  64 
  65 /**
  66  * ECMA 15.5 String Objects.
  67  */
  68 @ScriptClass("String")
  69 public final class NativeString extends ScriptObject {
  70 
  71     private final CharSequence value;
  72 
  73     // Method handle to create an object wrapper for a primitive string
  74     private static final MethodHandle WRAPFILTER = findOwnMH("wrapFilter", MH.type(NativeString.class, Object.class));
  75     // Method handle to retrieve the String prototype object
  76     private static final MethodHandle PROTOFILTER = findOwnMH("protoFilter", MH.type(Object.class, Object.class));
  77 
  78     // initialized by nasgen
  79     private static PropertyMap $nasgenmap$;
  80 




  81     private NativeString(final CharSequence value) {
  82         this(value, Global.instance());
  83     }
  84 
  85     NativeString(final CharSequence value, final Global global) {
  86         this(value, global.getStringPrototype(), $nasgenmap$);
  87     }
  88 
  89     private NativeString(final CharSequence value, final ScriptObject proto, final PropertyMap map) {
  90         super(proto, map);
  91         assert value instanceof String || value instanceof ConsString;
  92         this.value = value;
  93     }
  94 
  95     @Override
  96     public String safeToString() {
  97         return "[String " + toString() + "]";
  98     }
  99 
 100     @Override
 101     public String toString() {
 102         return getStringValue();
 103     }
 104 
 105     @Override
 106     public boolean equals(final Object other) {