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) {
|