FieldLookup.hx 714 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package java.internal;
  2. @:native('haxe.lang.FieldLookup')
  3. @:static private class FieldLookup
  4. {
  5. @:functionBody('
  6. return s.hashCode();
  7. ')
  8. public static function hash(s:String):Int
  9. {
  10. return 0;
  11. }
  12. public static function findHash(hash:String, hashs:Array<String>):Int
  13. {
  14. var min = 0;
  15. var max = hashs.length;
  16. while (min < max)
  17. {
  18. var mid = Std.int((max + min) / 2); //overflow safe
  19. var classify = untyped hash.compareTo(hashs[mid]);
  20. if (classify < 0)
  21. {
  22. max = mid;
  23. } else if (classify > 0) {
  24. min = mid + 1;
  25. } else {
  26. return mid;
  27. }
  28. }
  29. //if not found, return a negative value of where it should be inserted
  30. return ~min;
  31. }
  32. }