Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e3863467f557
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1c7f000ee777
Choose a head ref
  • 3 commits
  • 10 files changed
  • 1 contributor

Commits on Feb 22, 2016

  1. Copy the full SHA
    28bc098 View commit details
  2. Copy the full SHA
    723e329 View commit details
  3. Copy the full SHA
    1c7f000 View commit details
13 changes: 13 additions & 0 deletions test/truffle/compiler/pe/language/defined_pe.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright (c) 2015, 2016 Oracle and/or its affiliates. All rights reserved. This
# code is released under a tri EPL/GPL/LGPL license. You can use it,
# redistribute it and/or modify it under the terms of the:
#
# Eclipse Public License version 1.0
# GNU General Public License version 2
# GNU Lesser General Public License version 2.1

tagged_example "defined?(true) == 'true'", true
tagged_example "defined?(false) == 'false'", true
tagged_example "defined?(self) == 'self'", true
tagged_example "defined?(14) == 'expression'", true
tagged_example "defined?(14 + 2) == 'expression'", true
1 change: 1 addition & 0 deletions test/truffle/compiler/pe/pe.rb
Original file line number Diff line number Diff line change
@@ -65,6 +65,7 @@ def tagged_counter_example(code)
require_relative 'language/ivar_pe.rb'
require_relative 'language/metaprogramming_pe.rb'
require_relative 'language/super_pe.rb'
require_relative 'language/defined_pe.rb'
require_relative 'core/truefalse_pe.rb'
require_relative 'core/fixnum_pe.rb'
require_relative 'core/float_pe.rb'
Original file line number Diff line number Diff line change
@@ -13,13 +13,24 @@

public class CoreStrings {

private final RubyContext context;

public final CoreString ASSIGNMENT;
public final CoreString CLASS_VARIABLE;
public final CoreString EXPRESSION;
public final CoreString FALSE;
public final CoreString INSTANCE_VARIABLE;
public final CoreString NIL;
public final CoreString SELF;
public final CoreString TRUE;

public CoreStrings(RubyContext context) {
this.context = context;
ASSIGNMENT = new CoreString(context, "assignment");
CLASS_VARIABLE = new CoreString(context, "class variable");
EXPRESSION = new CoreString(context, "expression");
FALSE = new CoreString(context, "false");
INSTANCE_VARIABLE = new CoreString(context, "instance-variable");
NIL = new CoreString(context, "nil");
SELF = new CoreString(context, "self");
TRUE = new CoreString(context, "true");
}

}
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ public void executeVoid(VirtualFrame frame) {
}

public Object isDefined(VirtualFrame frame) {
return create7BitString("expression", UTF8Encoding.INSTANCE);
return coreStrings().EXPRESSION.createInstance();
}

// Utility methods to execute and expect a particular type
Original file line number Diff line number Diff line change
@@ -39,7 +39,11 @@ public Object execute(VirtualFrame frame) {

@Override
public Object isDefined(VirtualFrame frame) {
return create7BitString(Boolean.toString(value), UTF8Encoding.INSTANCE);
if (value) {
return coreStrings().TRUE.createInstance();
} else {
return coreStrings().FALSE.createInstance();
}
}

}
Original file line number Diff line number Diff line change
@@ -59,7 +59,7 @@ public Object isDefined(VirtualFrame frame) {
if (value == null) {
return nil();
} else {
return create7BitString("class variable", UTF8Encoding.INSTANCE);
return coreStrings().CLASS_VARIABLE.createInstance();
}
}

Original file line number Diff line number Diff line change
@@ -63,7 +63,7 @@ public Object isDefined(VirtualFrame frame) {
if (readOrNullNode.execute((DynamicObject) receiverObject) == null) {
return nil();
} else {
return create7BitString("instance-variable", UTF8Encoding.INSTANCE);
return coreStrings().INSTANCE_VARIABLE.createInstance();
}
} else {
return false;
Original file line number Diff line number Diff line change
@@ -32,7 +32,7 @@ public Object execute(VirtualFrame frame) {

@Override
public Object isDefined(VirtualFrame frame) {
return create7BitString("self", UTF8Encoding.INSTANCE);
return coreStrings().SELF.createInstance();
}

}
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ public Object execute(VirtualFrame frame) {

@Override
public Object isDefined(VirtualFrame frame) {
return create7BitString("assignment", UTF8Encoding.INSTANCE);
return coreStrings().ASSIGNMENT.createInstance();
}

}
Original file line number Diff line number Diff line change
@@ -59,7 +59,7 @@ public Object execute(VirtualFrame frame) {

@Override
public Object isDefined(VirtualFrame frame) {
return create7BitString("assignment", UTF8Encoding.INSTANCE);
return coreStrings().ASSIGNMENT.createInstance();
}

}