if (receiverVariableRef.get() != null) {
return;
}
JsVariable result;
PropertyReference ref = V8Helper.computeReceiverRef(frameObject);
if (ref == null) {
result = null;
} else {
ValueLoader valueLoader = context.getValueLoader();
ValueMirror mirror =
valueLoader.getOrLoadValueFromRefs(Collections.singletonList(ref)).get(0);
// This name should be string. We are making it string as a fall-back strategy.
String varNameStr = ref.getName().toString();
// 'this' variable is not mutable. Consider making it mutable.
result = new JsVariableBase.Impl(valueLoader, mirror, varNameStr);
}
if (result != null) {
receiverVariableRef.compareAndSet(null, result);